问一个makefile的目标文件依赖关系问题
假设目录结构如下:
/app/src/test.c
/app/src/test1.cpp
/app/Makefile
/build/
现在我需要在build/下编译该app(不想在源代码目录里生成目标文件)。
cd /build; make -C /app
在app/Makefile里通过gcc -MM -MT生成的depend文件内容如下:
/build/test.o: /app/src/test.c
/build/test1.o: /app/src/test1.cpp
但是gcc -MM -MT只会生成约束关系,而并不会指定如何去编译target(可能make的默认行为就是在目标文件的同目录下搜索同名源文件吧,并根据搜索到的源文件是c或c++而分别去调用gcc或g++),这时进行make则不会去编译/app/src/目录下的源文件。
有解决方案吗?(需注意要区分使用gcc和g++)