我试图加快由多个大文件组成的C ++项目的构建。将<MultiProcessorCompilation>true</MultiProcessorCompilation>添加到* .vcxproj文件可以正常工作,并且速度改进效果不错,但是由于它使用了所有可用的cpus,因此可能会使我的计算机暂时无响应。

有什么方法可以通过* .vcxproj项目文件将参数传递给编译器的/ MP选项(因为我想在使用Visual Studio进行构建时获得好处)?

不幸的是,目前无法重构/拆分项目。

最佳答案

您可以在项目的配置属性,C / C ++-命令行,其他选项上设置在编译过程中将使用的最大进程数:

/ MP [processMax]

其中processMax是必需的数字。

正如微软所说


  如果省略processMax参数,则编译器将检索该数字
  操作系统中计算机上有效处理器的数量,
  并为每个处理器创建一个进程


因此,您应该尝试使用processMax值,以决定哪个最适合您的系统以做出响应。

当您指定/ MP [processMax]时,例如/ MP4在项目的配置属性(C / C ++-命令行,其他选项)中实际上存储在vcxproj文件中,为:<AdditionalOptions>/MP4</AdditionalOptions>元素中的<ClCompile>

关于c++ - 如何在具有指定cpu计数的MSBuild中设置/MP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39517378/

10-11 17:04