我偶然发现了几个关于改进CMake C++项目周转时间的SO问题(如"At what level should I distribute my build process?"或"cmake rebuild_cache for just a subdirectory?"),我想知道是否有利用CMake提供的特定可能性的更一般的指导。如果可能没有跨平台编译时优化,我主要对基于Visual Studio或GNU toochain的方法感兴趣。如何加快我的CMake C++项目的编译时间?

而且我已经了解并投资进入一般建议方面加快C++构建:

更改/优化/微调工具链

优化你的代码库/软件体系结构(例如,通过减少的依赖关系,并使用良好定义的子项目 - 单元测试)

投资在一个更好的硬件(SSD,CPU,存储器)

like like recommended here,here or here。所以我在这个问题上的重点是第一点。

另外,我知道的建议中的CMake的Wiki上找到:

前者只处理基本知识(并行make),后来把手大多是如何加快解析CMake文件。

只是为了使这个多一点具体的,如果我从使用MSYS/GNU here 100库我得到了以下time测量结果我的CMake的例子:

$ cmake --version

cmake version 3.5.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

$ time -p cmake -G "MSYS Makefiles" ..

-- The CXX compiler identification is GNU 4.8.1

...

-- Configuring done

-- Generating done

-- Build files have been written to: [...]

real 27.03

user 0.01

sys 0.03

$ time -p make -j8

...

[100%] Built target CMakeTest

real 113.11

user 8.82

sys 33.08

所以我有一个总的〜 140秒,我的目标 - 这个公认的非常简单的例子 - 就是将其降低到标准设置/工具的10-20%。

2016-05-19

Florian

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐