我试图加快由多个大文件组成的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/