我刚买了一台新的四核计算机并注意到nmake只使用了一个进程。
我曾经使用过具有开关-j4的make来启动4个进程。什么是nmake等价物?
[编辑] 根据以下信息,我可以在qmake项目文件中添加命令:
QMAKE_CXXFLAGS + = / MP
这对我有效。非常感谢。
答案 0 :(得分:42)
告诉nmake
使用所有核心的另一种与Qt无关的通用方法是将环境变量CL
设置为/MP
:
set CL=/MP
nmake
将使用所有CPU核心。
答案 1 :(得分:33)
答案 2 :(得分:21)
根据MSDN,nmake
没有这样的选项。
然而,您可以使用VC ++命令行编译器使用/MP
选项并同时传递多个文件,使编译器并行构建多个文件:
> cl /MP a.cpp b.cpp c.cpp
但请注意,大多数Makefile不会像这样调用编译器 - 它们通常会为每个单独的源文件单独调用编译器,这会阻止/MP
选项执行任何有用的操作。
答案 3 :(得分:7)
CMake 2.8.1 RC1,至于编写它准备尝试的时间,确实为NMake带来了新的生成器,称为NMake Makefiles JOM,它生成了具有jom特定设置的NMake,这是drop取代NMake。因此,它使用NMake为多处理启用构建。
答案 4 :(得分:6)
Incredibuild声称能够在多个核心/多台计算机上运行nmake构建。我没有任何经验。
答案 5 :(得分:4)
答案 6 :(得分:3)
这对普通的makefile不起作用,但Visual Studio 2005中有一个设置允许您同时构建多个.vcproj文件(假设一个不依赖于另一个)。工具 - >选项 - >项目和解决方案 - >构建和运行 - > X 最大并行项目构建数。
答案 7 :(得分:-1)
不是完全一样,但是如果您使用cmake
,则可以导出解决方案(例如,使用生成器“ Visual Studio 14 2015”而不是“ NMake Makefiles”)。
在这种情况下,可以使用msbuild
工具构建导出的解决方案,该工具允许您使用/maxcpucount
命令行开关并行化构建过程。