【发布时间】:2017-03-02 12:49:17
【问题描述】:
我的代码在嵌套目录中排序,例如
src/cmn/abc.cpp
src/voc/xyz.cpp
并且期望的对象输出应该是
obj/cmn/abc.o
obj/voc/xyz.o
Makefile 条目是
SRC_FILES := src/cmn/abc.cpp src/voc/xyz.cpp
OBJ_FILES := $(patsubst %.cpp,*.o,$(patsubst src/%,obj%,$SRC_FILES))
通用目标规则很简单(太简单)并且无法按预期工作。它会在 src 文件旁边创建 obj 文件,因为它错过了模式替换。此外,它错过了目录创建(如obj/voc)。
.cpp.o:
@$(CC) $(CC_FLAGS) $< -o $@
应如何定义目标以实现上述预期目标?
【问题讨论】: