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

C++ IncredBuild在一个线程中编译Visual Studio 2010/2012解决方案的一些项目,c++,visual-studio-2010,visual-studio-2012,incredibuild,C++,Visual Studio 2010,Visual Studio 2012,Incredibuild,我们试图将包含约20个项目的VS2008解决方案升级到VS2010,但其中一些项目的构建存在问题。我尝试了不同版本的VS(2010、2012、2013。即使使用vc90编译器版本)/IncrediBuild(4.61、5.0、6.1)/Windows(7、8),但没有任何帮助。项目和增量的所有可能选项也已更改。未为这些项目设置自定义生成规则和步骤。请告诉我,我能做些什么来解决这个问题 我还无法加载图像,因此这是一个错误 Upd:我尝试在VS2013中编译解决方案时没有使用IncredBuild,

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

我还无法加载图像,因此这是一个错误


Upd:我尝试在VS2013中编译解决方案时没有使用IncredBuild,但使用了/MP选项,并且得到了相同的结果-项目的一些文件是按顺序和相同顺序编译的,因此Incredi是无辜的,问题只存在于我们的项目中以及VS如何使用它。

,问题是一些cpp文件具有固定的输出对象文件名。清除这些参数后,它们的编译开始并行进行。但是在VS2008中,即使有这样的参数属性,一切都很好。

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

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

除此之外,在项目B依赖于项目a的场景中,VisualStudio仅在完成a的链接后才编译来自项目B的源代码(尽管大多数时间项目B的编译不依赖于项目a的编译,但只有这些项目的链接步骤相互依赖),IncredBuild将能够并行编译项目A和项目B,然后是A的链接和B的链接

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

免责声明:作者是IncredBuild的首席技术官