我有一个非常复杂的makefile,由于显而易见的原因我不会在这里包含。我有规则来构建依赖文件,然后用'-include myobj.d'的行包含它们。
我(显然)也有规则来构建* .d文件。
然后我按照
的规则行事.PHONY: clean
clean:
rm myobj.d myobj.o ...
当我做干净时,首先它会在删除之前重建所有.d文件。我用-d运行make并检查了调试信息,它正在尝试使用“-include”重建我包含的所有文件,然后再检查它被告知要构建的目标。我有一堆“rules.mk”用于构建不同的代码单元,它也试图重建所有这些代码单元。
这不会有问题,除了实际包含的.d文件确实有构建它们的规则。当我说“make clean”时,我希望make只执行干净规则,而不是重建所有愚蠢的依赖文件,这样我就可以删除它们了......
如果构建处于一种奇怪的状态,其中一半代码是构建的而其余代码没有构建,那么这是特别有问题的。我正在尝试做一个make clean来恢复到良好的状态。
如何告诉make不要尝试自动重建包含的文件?
答案 0 :(得分:1)
你可以在几天前看到我对这个非常相似的问题的答案:
答案 1 :(得分:0)
这些天你不需要.d
文件的规则,这是一种常见的误解。有关详细信息,请参阅Automatic header dependencies with gmake。