Vio*_*ffe 2 c++ windows msbuild visual-studio
我有一个VC项目文件,我正在使用MSBuild从命令行构建.我想指定/MP
标志而不编辑项目文件.那可能吗?我之前尝试过set CL=/MP
调用MSBuild,但它没有效果.
这可以通过访问CL_MPCount
Visual Studio 选项来完成:
MSBuild /m:2 /p:CL_MPCount=2 /p:Configuration=Release tf_tutorials_example_trainer.vcxproj
Run Code Online (Sandbox Code Playgroud)
以上指示编译器最多执行 2 个并行编译任务。该/m:2
标志允许MSBuild
并行构建两个项目。最终结果是我们最多有 4 个cl.exe
进程并行运行。
更新:该CL_MPCount=2
标志被传递到cl.exe
作为/MP2
。这允许.cpp
在同一项目中并行编译 2 个文件。
您需要一个可以从命令行覆盖的属性.在文本编辑器中打开.vcxproj文件,记事本会这样做.找到"Globals"属性组并添加名为"Turbo"的属性
<PropertyGroup Label="Globals">
<Turbo>false</Turbo>
...etc...
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
并使用该属性指定编译选项.因为它只能在Release版本中工作:
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<MultiProcessorCompilation>$(Turbo)</MultiProcessorCompilation>
...etc...
</ClCompile>
Run Code Online (Sandbox Code Playgroud)
并运行MSBuild:
msbuild /p:Configuration=Release /p:Turbo=true
Run Code Online (Sandbox Code Playgroud)