在查看构建系统时,很多系统(SCons、bjam、cmake、Tundra等)都有内置的#include扫描仪。然而,gcc和icc提供了一个-MMD (或-MD)选项,它输出C++文件所依赖的头文件的名称。
-MMD依赖项选项似乎是可靠的。如果您将#include添加到C文件,则其时间戳将更改,因此构建系统将重新编译它。如果将#include添加到头文件,则其时间戳将更改,并且将重新编译所有受影响的C文件。
包括扫描系统中断,但在我看来-MMD似乎很健壮。哪一个是最好的,为什么?
发布于 2012-08-24 23:59:46
由于您给出的原因以及更多原因,-MMD是最好的。
将编译器输出依赖项作为正常编译过程的一部分,可确保完全相同的编译器选项集(如-I路径和宏)在编译和查找依赖项时有效。这比确保对两个单独的工具使用相同的选项更少冗余,也更不容易出错。
https://stackoverflow.com/questions/12106141
复制相似问题