我刚买了一台新的四核计算机,发现 nmake 只使用了一个进程。
我曾经使用带有开关 -j4 的 make 来启动 4 个进程。什么是 nmmake 等价物?
[编辑] 根据以下信息,我已经能够将命令添加到我的 qmake 项目文件中:
QMAKE_CXXFLAGS += /MP
这有效地为我做到了。非常感谢。
另一种通用的、非 Qt 相关的方式来告诉nmake
使用所有内核是将环境变量设置CL
为/MP
:
set CL=/MP
nmake
将使用所有 CPU 内核。
QT 有一个工具:http: //download.qt.io/official_releases/jom/
他们还在 Qt creator 中默认使用它。
根据MSDN,没有这样的选项nmake
.
/MP
但是,您可以使用VC++ 命令行编译器的选项并同时传递多个文件,使编译器并行构建多个文件:
> cl /MP a.cpp b.cpp c.cpp
但是请注意,大多数 Makefile 不会像这样调用编译器 - 它们通常为每个单独的源文件单独调用编译器,这会阻止该/MP
选项做任何有用的事情。
Incredibuild声称能够在多核/多台机器上运行 nmake 构建。我没有任何经验。
CMake 2.8.1 RC1 ,至于写这篇文章的时候,它已经准备好尝试了,它确实为 NMake 带来了新的生成器,称为NMake Makefiles JOM,它生成具有特定设置的 jom 的 NMake,这是替换 NMake 的下降。因此,它使用 NMake 提供了支持多处理的构建。
快速谷歌搜索给出:http: //msdn.microsoft.com/en-us/library/bb385193.aspx
这不适用于普通的 makefile,但 Visual Studio 2005 中有一个设置允许您同时构建多个 .vcproj 文件(前提是一个不依赖于另一个)。工具 -> 选项 -> 项目和解决方案 -> 构建和运行 -> X最大并行项目构建数。
不太一样,但如果你使用cmake
,你可以导出解决方案(例如使用生成器“Visual Studio 14 2015”而不是“NMake Makefiles”)。
在这种情况下,可以使用msbuild
允许您使用/maxcpucount
命令行开关并行化构建过程的工具构建导出的解决方案。