C Makefile将.o文件移动到不同的目录

C Makefile将.o文件移动到不同的目录,c,makefile,vpath,C,Makefile,Vpath,我在一个目录中有源代码,在另一个目录中有一个makefile。我能够使用make系统的vpath机制编译代码。正在makefile所在的同一文件夹中创建.o文件。但我想将这些.o文件移动到另一个名为obj的目录中。我尝试了以下方法: vpath %.o obj 但是,它们仍在与makefile相同的文件夹中创建。有人能帮我解决这个问题吗 以下是makefile的一些突出显示的行: PATH_TO_OBJ:- ../obj SRC :- .c files OBJS :- $(SRC:.c = .

我在一个目录中有源代码,在另一个目录中有一个makefile。我能够使用make系统的vpath机制编译代码。正在makefile所在的同一文件夹中创建.o文件。但我想将这些.o文件移动到另一个名为
obj
的目录中。我尝试了以下方法:

vpath %.o obj
但是,它们仍在与makefile相同的文件夹中创建。有人能帮我解决这个问题吗

以下是makefile的一些突出显示的行:

PATH_TO_OBJ:- ../obj
SRC :- .c files
OBJS :- $(SRC:.c = .o)
.c.o = $(CC) $(CFLAGS) -c 
exe: cc $(LFLAGS) -o $(PATH_TO_OBJ) $(SRC).

在此之后,.o文件也将在Makefile的同一文件夹中创建。不移动到obj

-o
选项定义了保存gcc编译器生成的输出文件的位置

gcc main.c -c -o path/to/object/files/main.o

Make的
VPATH
仅用于查找源文件。对象文件的放置取决于构建它们的内容。有一个很好的描述在(我看到有人击败我张贴在评论这)


*BSD构建系统使用
make
的变体,可以将目标文件(以及其他生成的文件,包括来自lex和yacc变体的C源文件)自动放置在
/usr/obj
中。如果您有权访问该版本的
make
,这可能是处理您试图解决的任何潜在问题的好方法。

您查看此页面,它应该可以解决您的问题:。如果你真的想了解你的错误,请发布你的Makefile的一个最简单的工作示例。你在
$(路径到对象)
$(SRC)
之间缺少一个
/
。它们之间也不能有空格。顺便说一句,你应该格式化你的问题代码,使其可读性为其他人。仍然没有得到。hre是我的Makefile您在
$(路径到对象)
$(SRC)
之间缺少一个
/
。它们之间也不能有空格。