过去一直工作的东西现在对我不起作用。我始终能够使用Qt Creator,Jom和Visual Studio 14(2015)编译器的组合并行构建。
我使用NMake Makefile生成,但是将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
最佳答案
构建大约在可用CPU总数的25%左右,因此我误认为构建是顺序进行的。实际的问题与硬件有关。某些事件触发了CPU时钟的硬件级别限制(停留在0.78GHz)。将Dell Precision 5510的电池拉动15秒钟,然后重新连接就可以了。
关于c++ - CMake/JOM不并行构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49961949/