【问题标题】:How to output compilation dependencies from CMake or make?如何从 CMake 或 make 输出编译依赖项?
【发布时间】:2011-03-13 05:37:08
【问题描述】:

我有一个 CMake C++ 项目,该项目正在快速增长并且经常发生变化。我正在尝试将编译时间减少到最低限度。

通常,当我重建项目时,尤其是在头文件更改后,我会惊讶于需要重新编译多少编译单元。我正在尝试识别可以避免的#includes,例如通过使用预先声明或不在标头中内联琐碎的函数。

有什么方法可以从 CMake 本身、从生成的 Makefile 或直接从文件本身找出哪些单元取决于哪些标头?

列表会更好,可视化图表(graphviz?)甚至更好。谷歌对我来说一无所获。 CMake 有 --graphviz 选项,但它在目标上运行,而不是在单个编译单元上运行。

首选跨平台(即仅使用 CMake),但我也会满足于仅 Linux。

【问题讨论】:

    标签: dependencies makefile cmake


    【解决方案1】:

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

    【讨论】:

    • 这只是传递闭包(即包括间接依赖),但它很有帮助,谢谢!
    猜你喜欢
    • 2011-09-24
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    相关资源
    最近更新 更多