繁体   English   中英

IncrediBuild 在一个线程中编译 Visual Studio 2010/2012 解决方案的一些项目

[英]IncrediBuild compile some projects of Visual Studio 2010/2012 solution in one thread

我们尝试将包含约 20 个项目的 VS2008 解决方案升级到 VS2010,但是构建其中一些项目存在问题。 我尝试了不同版本的 VS(2010, 2012, 2013. 即使使用 vc90 编译器版本) / IncrediBuild(4.61, 5.0, 6.1) / Windows(7, 8) 但没有任何帮助。 项目和 Incredi 的所有可能选项也已更改。 未为这些项目设置自定义构建规则和步骤。 请告诉我我能做些什么来解决这个问题。

我还无法加载图像,所以这是构建图形屏幕截图链接

更新:我尝试在不使用 IncrediBuild 的情况下在 VS2013 中编译解决方案,但是使用 /MP 选项,并且得到了相同的结果 - 项目的某些文件是按顺序以相同的顺序编译的,因此 Incredi 是无辜的,问题仅在我们的项目以及 VS 如何使用它。

IncrediBuild 的最新公共版本引入了一项功能,这正是您所要求的 - 真正无序\\优化的并行化。 这一新功能允许 IncrediBuild 并行执行 Visual Studio 任务,即使在 Visual Studio 不知道如何执行的情况下也是如此。 这意味着使用 IncrediBuild,每个不真正依赖于先前任务的任务都将与其并行执行。

因此,在上述场景中,尽管填充固定输出对象文件名会导致 Visual Studio(和 MSBuild)以顺序方式编译这些文件,但 IncrediBuild 将并行编译它们。

除此之外,在项目 B 依赖于项目 A 的情况下,Visual Studio 只会在 A 的链接完成后编译来自项目 B 的源代码(尽管大多数时候项目 B 编译不依赖于项目 A 编译,只有这些项目的链接步骤相互依赖),IncrediBuild 将能够并行编译项目 A 和项目 B,然后是 A 的链接和 B 的链接。

希望这对这个话题有所启发。

免责声明:作者是 IncrediBuild 的 CTO

因此,问题在于某些 cpp 文件具有固定的输出目标文件名。 当这些参数被清除时,它们开始并行编译。 但是在 VS2008 中,即使有这样的参数属性,一切都很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM