【发布时间】:2011-02-18 20:21:34
【问题描述】:
您好,我正在创建一个 makefile,其中每个 .o 都表示为另一个目录的相对路径,并且依赖于本地目录中的 .cpp 文件。我对这个问题的理解是我不能在规则定义中使用函数,所以规则:
%.o: %.cpp
导致先决条件 .cpp 与 .o 位于同一目录中,而 .o 不是 cpp 实际所在的位置。例如:
../../Tmp/MyClass.o: ../../Tmp/MyClass.cpp
../../Tmp/MyClass.o: MyClass.cpp
最后,位于另一个目录中的输出依赖于 .o,因此它们必须从一开始就具有完整的相对路径信息:
OBJS := $(addprefix ../../../Tmp/XCode/${PLATFORM}/${CONFIGURATION}/, $(addsuffix .o, $(basename ${SRCS})))
${OUTPUT}: ${OBJS} ; ${AR} $@ ${OBJS}
谢谢!
【问题讨论】: