如何让VS 2010一次运行多个C ++编译过程?我的意思是并行构建对象模块;我不想一次构建多个项目(我知道工具>选项>构建和运行<并行项目构建的最大数量,但这不符合我的要求。)
基本上,我正在寻找Visual Studio相当于“make -jN”。
答案 0 :(得分:33)
另外,正如Ross Smith在评论中所说,你还需要打开项目中的“多处理器编译”选项:
答案 1 :(得分:18)
必须设置两个开关才能使用多线程进行VS构建(两者都是项目特定的):
同时检查您的工具 - >选项 - >项目和解决方案 - > VC ++项目设置 - > 最大并发C ++编译设置。默认值为0,使VS能够使用尽可能多的concurret编译。
答案 2 :(得分:15)
Necrolis的评论似乎是正确的解决方案。
/MP (Build with Multiple Processes)
/ MP选项使编译器创建一个或多个副本 本身,每个都在一个单独的过程中。这些副本同时进行 编译源文件。因此,建立的总时间 源文件可以大大减少。
请注意,您可以在项目级别设置它(因此它将应用于其中的所有文件)以及单个文件,例如,如果您需要使用#import
,则非常有用。
特别是,/ MP通常与预编译的头文件或使用#import
的源不兼容;在这种情况下,您仍然可以在项目上设置/ MP标志,然后在单个文件(通常是stdafx.cpp和使用#import的任何文件)上清除它。
答案 3 :(得分:4)
这就是我做的事情
1)转到工具 - >选项而不是“项目和解决方案” - >“构建并运行”对我来说它有核心数量。虽然起初我认为这是我需要做的全部但不是
2)右键单击您的项目并选择属性。在“配置属性” - >“C / C ++” - >“命令行”下输入/MP4
,其中4是您拥有的核心数。你会得到关于标志不兼容的警告,所以我们有另一个步骤
3)转到“配置属性” - >“C / C ++” - >“代码生成”,“启用最小重建”。将其改为否。
重建,您应该在任务管理器中看到多个CL进程。
答案 4 :(得分:3)
jom是您正在寻找的工具。
来自维基:http://qt-project.org/wiki/jom
jom是nmake的克隆,用于支持多个执行 并行的独立命令。它基本上添加了-j命令 行开关类似于GNU make。
虽然大多数文档都针对Qt开发人员试图加速Windows上的Qt库构建,但是只要你有一个与nmake兼容的makefile,jom在非Qt项目中也应该能很好地工作。
维基页面包含您可以下载的二进制文件,您可以像调用一样调用jom。
答案 5 :(得分:0)
我明白了!您的要求是在并行线程中构建单个项目。
我发现Shark compiler Control插件非常有用