CMake / JOM没有并行构建

时间:2018-04-22 02:24:59

标签: c++ cmake qt-creator

过去一直运作的东西现在对我不起作用。我一直能够使用Qt Creator,Jom和Visual Studio 14(2015)编译器的组合并行构建。

我使用NMake Makefiles生成,但将CMAKE_MAKE_PROGRAM设置为jom。我不使用CMake提供的生成器“NMake Makefiles JOM”,因为Qt Creator似乎无法解析输出 - 即我没有显示项目层次结构。但我相信我现在这样做的方式在过去对我有用,但现在它只为我编制顺序。

我从默认的

修改QtC中的构建步骤
cmake --build . --target all

cmake --build . --target all -- -j8

以便将-j8传递给jom。

我注意到两件事: 生成的Makefile在顶部附近有.NOTPARALLEL 我相信当JOM启动时会导致输出,

jom: parallel job execution disabled for Makefile

然而,当我手动注释掉.NOTPARALLEL时,我仍然获得顺序编译。

关于这里发生了什么的任何想法? 对于CXX_FLAGS,我使用/ MP标志而不使用/ Gm标志 - 我知道这些是不兼容的

编辑:Windows 10上的Qt Creator版本4.5和CMake 3.6.1。

1 个答案:

答案 0 :(得分:1)

构建数据占据可用CPU总量的25%左右 - 因此我的误诊认为构建是按顺序完成的。 实际问题与硬件有关。某些事件触发了CPU时钟的硬件级限制(停留在0.78GHz)。将Dell Precision 5510的电池拉15秒并重新连接就可以了。