ACy*_*lic 4 dependencies gcc include icc
在查看构建系统时,很多(SCons,bjam,cmake,Tundra等)都有内置的#include扫描程序.然而,gcc和icc提供了一个-MMD(或-MD)选项,它输出C++文件所依赖的头文件的名称.
该-MMD依赖的选择似乎是可靠的.如果添加#include到C文件,其时间戳将更改,以便构建系统重新编译它.如果#include向头文件添加a ,则其时间戳将更改,并且将重新编译所有受影响的C文件.
包括扫描系统中断,但-MMD在我看来是健壮的.哪个最好,为什么?
-MMD 最好,因为你给出的原因和更多.
让编译器在正常编译过程中输出依赖项可确保完全相同的编译器选项集(如-I路径和宏)对编译和查找依赖项有效.与确保将两个单独的工具使用相同的选项相比,这更不冗余且更不容易出错.