如何利用nmake的所有内核?

时间:2009-03-02 11:13:13

标签: c++ eclipse qt multicore nmake

我刚买了一台新的四核计算机并注意到nmake只使用了一个进程。

我曾经使用过具有开关-j4的make来启动4个进程。什么是nmake等价物?

[编辑] 根据以下信息,我可以在qmake项目文件中添加命令:

QMAKE_CXXFLAGS + = / MP

这对我有效。非常感谢。

8 个答案:

答案 0 :(得分:42)

告诉nmake使用所有核心的另一种与Qt无关的通用方法是将环境变量CL设置为/MP

set CL=/MP
nmake

将使用所有CPU核心。

答案 1 :(得分:33)

答案 2 :(得分:21)

根据MSDNnmake没有这样的选项。

然而,您可以使用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命令行开关并行化构建过程。