【问题标题】:MSBuild.exe not building projects in parallelMSBuild.exe 不并行构建项目
【发布时间】:2011-07-23 05:00:54
【问题描述】:

我使用 MSBuild.exe 来构建我的 Visual C++ 解决方案。解决方案中的一个项目编译为静态库(我们称之为 MyLib.lib),许多其他项目是链接到 MyLib.lib 的小工具。

我是这样编译的: msbuild MySolution.sln /p:Configuration=Release /p:Platform="Win32" /maxcpucount:4

但是我可以看到每个项目都是按顺序构建的。始终只有一个 MSBuild.exe 在运行。

我做错了什么吗?

[编辑:我使用的是 Visual Studio 2008]

【问题讨论】:

  • 如果一个项目依赖于另一个项目,您希望并行完成什么?
  • 对不起 - 我编辑了这个问题,以使这个更清楚。在我的解决方案中,大约有 15 个项目依赖于 MyLib.lib。一旦 MyLib.lib 独立构建,我希望这 15 个项目能够并行构建。

标签: c++ windows msbuild build-process


【解决方案1】:

只有不相互依赖的项目才能并行构建。显然这不是您的情况,在 .lib 可用之前无法构建该工具。

编辑:您没有使用 VS2010。对于 VS2008,您应该使用 vcbuild.exe。使用 /M4 启用并发构建

【讨论】:

  • 所以我需要一个构建 MyLib.lib 的解决方案,以及另一个依赖它的其他项目的解决方案?
  • 第二个解决方案中的项目没有依赖关系(它们只是链接一个已经存在并从第一个解决方案构建的 .lib 文件),因此它们应该能够并行构建跨度>
  • 谢谢,它似乎可以在我的机器上运行。我将修改我们的构建脚本!我在 vcbuild 中使用了这些参数:vcbuild.exe" /rebuild /M4 MySolution.sln "Release|Win32"
【解决方案2】:

项目必须逐个编译,因为存在依赖关系。 无论如何,MSBuild 不会并行执行编译。

【讨论】:

    猜你喜欢
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    相关资源
    最近更新 更多