我正在使用 gmake 并按照手册gcc -MM
跟踪标头依赖项。该机制依赖于 makefile指令来导入计算的依赖项。include
因为.d
文件包含在 makefile 中,所以它们必须存在才能生成任何目标,包括clean
. 因此,在clean
做正确的事情之前,必须生成依赖关系,如果构建失败,那么clean
只会变得更加混乱。
此外clean
,它希望在构建任何目标之前生成所有依赖项。
此外,如果任何文件被更改为包含一个不存在的文件,那么依赖解析就会中断,并且什么都不会构建。
如果删除了标头,则现有的依赖文件仍然包含将其命名为目标,并且在删除有问题的依赖文件之前不会构建任何内容……这不能用clean
.
用通配符替换替换模式include
以包含所有预先存在的依赖文件可以解决一些问题,但它仍然无法清除损坏的依赖项,并且永远不会删除陈旧的依赖项文件。有更好的解决方案吗?手册中的示例真的是为了实际使用吗?