【发布时间】:2012-10-03 03:33:30
【问题描述】:
我正在使用 gmake 和 gcc -MM 跟踪标头依赖项,遵循 the manual。该机制依赖于 makefile include 指令来导入计算的依赖项。
因为.d 文件包含在makefile 中,所以它们必须存在才能生成任何目标,包括clean。因此,在clean 能够做正确的事情之前,必须生成依赖关系,如果构建失败,那么clean 只会变得更加混乱。
除了clean,它还想在构建任何目标之前制作所有依赖项。
此外,如果将任何文件更改为包含不存在的文件,则依赖关系解析会中断,并且不会生成任何内容。
如果删除了一个标头,那么现有的依赖文件仍然包含将其命名为目标,并且在删除有问题的依赖文件之前不会构建任何东西……这不能用clean 完成。
用通配符替换include 的替换模式以包含所有预先存在的依赖文件可以解决一些问题,但它仍然无法清除损坏的依赖文件,并且永远不会删除过时的依赖文件。有更好的解决方案吗?手册中的示例真的是为了实际使用吗?
【问题讨论】:
标签: makefile dependencies gnu-make