代码之家  ›  专栏  ›  技术社区  ›  Jake Miller

MSBuild-将MinimalRebuild(/Gm)重写为false

  •  0
  • Jake Miller  · 技术社区  · 6 年前

    MinimalRebuild 关闭并 MultiProcessorCompilation 正在打开。我可以在项目文件中对此进行配置,但是否可以使用 msbuild

    换句话说,在命令行中使用msbuild,我将如何重写 最小重建 /Gm- )以假乱真 多处理机组合 ( /MP )是真的吗?下面的似乎不起作用

    msbuild /m:7 /p:CL_MPCount=7 /p:MinimalRebuild=false /p:MultiProcessorCompilation=true

    作为旁白,是 /p:CL_MPCOUNT 多余的 财产?总的来说,我很难找到符合 /p 选择。

    0 回复  |  直到 6 年前
        1
  •  0
  •   Mr Qian    6 年前

    换句话说,在命令行中使用msbuild,我将如何 多处理器编译(/MP)是否为真?

    CL_MPCount 可以被重写 /p:xxx=xxx MultiProcessorCompilation MinimalRebuild 不是。只是说清楚,它只能被 ( p表示财产 )如果它是MSBuild的属性。这个属性通常可以通过 $

    编辑

    1毫升

    这个值意味着VS IDE中并发C++编译的最大数量。 this .

    因此,我已经通过VS IDE分配了一个值(调试-gt;选项-gt;项目和解决方案)& gt;vc++项目解决方案并设置 Maximum Number of concurrent C++ compilations 到2.)

    编写自定义目标,如

    <Target Name ="Test" AfterTargets="Build">
        <Message Importance="high" Text="CL_MPCount is= $(CL_MPCount)">
        </Message>
      </Target>
    

    然后建造并展示 enter image description here

    2最小重建

    通常,这意味着 /GM True 通过(右击项目)&属性:& gt;C/C++ + &代码生成——&集合 Enable Minimal Rebuild ).

    自定义目标类型

    <Target Name ="Test" AfterTargets="Build">
            <Message Importance="high" Text="MinimalRebuild is= $(MinimalRebuild)">
            </Message>
          </Target>
    

    结果是

    enter image description here

    $(MinimalRebuild) 这意味着它不是MSBuild的属性。

    3) 多处理机组合

    这也意味着 /MP 从文档中我们会发现它是编译器的一个选项,而不是MSBuild的属性。另外,我也做了同样的事 最小重建

    此外 ,我想 多处理机组合 MSBuild -help 在命令行中发现它根本没有列出这些参数。所以我认为这两个参数与MSBuild完全无关,只是编译器的一些选项。

    希望它能帮助你。