2

我们公司有许多团队使用公共库的子集。一些项目能够使用不同的构建脚本,因此在一个项目中,我们希望能够msbuild使用/m并行构建项目的选项进行构建(其他一些项目用于devenv构建)。此选项可以在构建脚本中设置,因此项目不需要更改。

问题是我们如何也可以应用该/MP选项以cl.exe允许在每个项目内进行多处理器构建,但不更改公共库。在 Visual Studio 中,您可以应用不会更改项目文件的用户属性表,但是有没有办法msbuild通过提供可以应用自定义构建设置而不更改项目的参数或属性表来做同样的事情?

编辑:

总结问题的一种更简单的方法可能是:我可以cl.exe在调用时向进程添加自定义参数msbuild吗?

4

3 回答 3

5

我找到了答案:属性可以传递给 MSBuild任务。这可以指定CL Task的任何属性,因此可以使用以下命令调用 msbuild:

msbuild file.sln /property:MultiProcessorCompilation=true

这里还有一篇关于调整 VS2010 并行构建性能的有用文章:http: //blogs.msdn.com/b/msbuild/archive/2010/03/08/tuning-c-build-parallelism-in-vs2010.aspx

于 2013-07-18T09:22:23.853 回答
4

您是否尝试设置环境变量 CL=/MP ?

于 2013-07-17T21:25:33.003 回答
1

按照这里的描述https://github.com/Microsoft/checkedc-clang/wiki/Parallel-builds-of-clang-on-Windows,我可以像这样调用 MSBuild

MSBuild /m:2 /p:CL_MPCount=2 /p:Configuration=Release tf_tutorials_example_trainer.vcxproj

这允许最多 2 个并行项目 (MSBuild),每个项目有 2 个编译 (Cl)。

于 2017-10-13T05:11:23.267 回答