假设我希望我的Makefile规则如下:
对于每个目标文件./obj/%.o,它依赖于两个文件./src/%_1.cpp和./src/%_2.cpp(例如./obj/main.o取决于在./src/main_1.cpp和./src/main_2.cpp上。在这种情况下编写makefile的简单方法是
./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp
但是这种方法不起作用......任何人都可以建议我如何在这种情况下定义规则?
另外,我遇到的另一个问题是 - 假设你定义了以下规则:
./obj/%.o: ./src/%_1.cpp
./obj/%.o: ./src/%_2.cpp
然后是#34;等同于"到
./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp
提前致谢。
答案 0 :(得分:1)
在这种情况下编写makefile的一种天真的方式是
./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp
但这种方法不起作用
确实如此(我假设你实际上正在定义一个应该执行的食谱,你在这里没有显示)。什么不起作用?
另外,我遇到的另一个问题是 - 假设你定义了以下规则:
./obj/%.o: ./src/%_1.cpp ./obj/%.o: ./src/%_2.cpp
然后是#34;等同于"到
./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp
不,一点也不。任何没有配方的模式规则都会删除该模式规则。模式规则永远不会像这样组合。