我有以下想法:所有源文件都在 SRC
目录中,而所有目标文件都保存在 OBJ
目录中 . 在GNU makefile中,我想自动搜索所有源文件,并创建源文件对象列表和o文件对象列表 . 我尝试了以下两种语法,我都得到了
没有规则来制作目标`/home/Serial/obj/Serial.o',需要......
这是想法:
c_files = $(wildcard $(SRC)/*.cpp)
o_files = $(patsub %.c,%.o,$(c_files) )
c_files = $(wildcard $(SRC)/*.cpp)
o_files = $(patsub $(SRC)/%.c,$(OBJ)/%.o,$(c_files) )
c_files
变量似乎已正确填充,但我无法创建对象列表 . 根据文档,第二个想法应该有效,但事实并非如此 . 替换语句有什么问题 .
要明确:我希望有例如
c_files = src/file1.cc src/file2.cc src/file109.cc
我想从中创建以下列表
o_files = obj/file1.o obj/files.o obj/file109.o
1 回答
有一种更简单的方法:
并获得一个自动编译目标文件的模式:
结合: