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