如何利用nmake的所有内核?
题
我刚买了一台新的四核计算机并注意到nmake只使用了一个进程。
我曾经使用过具有开关-j4的make来启动4个进程。什么是nmake等价物?
[编辑] 根据以下信息,我可以在qmake项目文件中添加命令:
QMAKE_CXXFLAGS + = / MP
这对我有效。非常感谢。
解决方案
根据 MSDN ,没有 nmake
的选项。
然而,您可以使用VC ++命令行编译器使用 / MP
选项并同时传递多个文件,使编译器并行构建多个文件:
> cl /MP a.cpp b.cpp c.cpp
但请注意,大多数Makefile不会像这样调用编译器 - 它们通常会为每个单独的源文件单独调用编译器,这会阻止 / MP
选项执行任何有用的操作。
其他提示
告诉 nmake
使用所有核心的另一种非Qt相关的通用方法是将环境变量 CL
设置为 / MP
:
set CL=/MP
nmake
将使用所有CPU核心。
CMake 2.8.1 RC1 ,至于写这篇文章的时间已经准备好了,确实为NMake带来了新的生成器,它被称为 NMake Makefiles JOM 它会生成具有jom特定设置的NMake,这是替换NMake的下降。因此,它使用NMake为多处理启用构建。
Incredibuild 声称能够在多个核心/多台计算机上运行nmake构建。我没有任何经验。
这对普通的makefile不起作用,但Visual Studio 2005中有一个设置允许您同时构建多个.vcproj文件(假设一个不依赖于另一个)。工具 - >选项 - >项目和解决方案 - >构建和运行 - > X 最大并行项目构建数。
不隶属于 StackOverflow