Dependencies 如何从CMake或make输出编译依赖项? 我有一个CGED C++项目,它正在迅速发展,而且经常发生变化。我试图将编译时间减少到最低限度

Dependencies 如何从CMake或make输出编译依赖项? 我有一个CGED C++项目,它正在迅速发展,而且经常发生变化。我试图将编译时间减少到最低限度,dependencies,makefile,cmake,Dependencies,Makefile,Cmake,通常,当我重建项目时,尤其是在头更改之后,我会惊讶于需要重新编译多少编译单元。我试图确定可以避免的#include类型,例如使用预声明或不在头中内联琐碎函数 有没有办法从CMake本身、生成的Makefile或直接从文件本身找出哪些单位取决于哪些头? 一个列表会更好,一个可视化的图形(graphviz?)会更好。谷歌没有为我找到任何东西。CMake有--graphviz选项,但它对目标而不是单个编译单元进行操作 跨平台(例如,只使用CMake)是首选,但我也只接受Linux。当我使用基于gcc的

通常,当我重建项目时,尤其是在头更改之后,我会惊讶于需要重新编译多少编译单元。我试图确定可以避免的
#include
类型,例如使用预声明或不在头中内联琐碎函数

有没有办法从CMake本身、生成的Makefile或直接从文件本身找出哪些单位取决于哪些头?

一个列表会更好,一个可视化的图形(graphviz?)会更好。谷歌没有为我找到任何东西。CMake有
--graphviz
选项,但它对目标而不是单个编译单元进行操作


跨平台(例如,只使用CMake)是首选,但我也只接受Linux。

当我使用基于gcc的工具链时,我发现cmake2.8(在运行make之后)生成的依赖信息存在于
depend.make
dependent.internal
文件中。使用VS似乎不会生成这样的文件(但这对您来说似乎不是问题)。此外,这些文件是cmake内部文件,因此使用它们的风险由您自己承担

这只是传递性闭包(即包括间接依赖项),但它很有用,谢谢!