最近我们正在讨论我们在基于make的构建过程中处理依赖项的.d文件的方法。问题已经被提出,有时在构建被中断时.d文件可能会变得损坏。
我们正在使用.DELETE_ON_ERROR目标,以确保如果构建被中断或失败,则删除正在生成过程中的对象文件。但是,我们还在使用GCC在编译时生成.d文件,这些文件也需要被删除。现在没有简单的方法告诉make这一点。
问题是,我们是否有办法在出现错误的情况下引导make删除我们的对象和依赖文件?是否有一些方法可以设置规则,以便它知道.d和.o文件是同时生成的,如果出现错误,则需要删除?
另外,我们还能做些什么来解决损坏的 .d 文件的问题吗?提出的一个建议是使用临时名称生成 .d 文件,每个文件有单独的后期编译步骤将其复制到正确的名称。