【发布时间】:2009-03-12 19:11:20
【问题描述】:
我们最近正在讨论我们在基于 make 的构建过程中处理依赖项的 .d 文件的方式。已提出的问题是,有时 .d 文件会在构建中断时损坏。
我们使用 .DELETE_ON_ERROR 目标来确保如果构建被中断或失败,它正在生成的目标文件被删除。但是,我们也使用 GCC 在编译时生成 .d 文件,这些文件也需要删除。似乎没有一种直接的方式来告诉 make 这件事。
所以问题是,有没有办法让我们在出错的情况下同时删除我们的对象和依赖文件?有什么方法可以设置规则,让它知道 .d 和 .o 文件是同时生成的,如果出现错误需要删除?
或者,我们可以采取其他措施来解决损坏的 .d 文件的问题吗?沿着这些思路的一个建议是生成具有临时名称的 .d 文件,并且每个文件都有一个单独的后编译步骤,将其复制到正确的名称。
【问题讨论】: