2015-06-17 51 views
-2

我們嘗試將包含〜20個項目的VS2008解決方案升級到VS2010,但構建它們時出現問題。我嘗試了不同版本的VS(2010,2012,2013,甚至是vc90編譯器版本)/ IncrediBuild(4.61,5.0,6.1)/ Windows(7,8),但沒有任何幫助。項目和Incredi的所有可能的選項也改變了。自定義構建規則和步驟不會爲這些項目設置。請告訴我有人可以怎樣解決這個問題。IncrediBuild在一個線程中編譯Visual Studio 2010/2012解決方案的一些項目

我還未載入圖片,因此這是一個link to build graph screenshot的網站。

UPD:我試圖編譯VS2013解決方案,而IncrediBuild,但隨着/ MP選項,並得到了相同的是相同的 - 項目的一些文件被sequentiallly編譯並以相同的順序,所以Incredi是無辜的這個問題只在我們的項目中以及VS如何與它一起工作。

回答

0

所以,問題是一些cpp文件有固定的輸出對象文件名。當這些參數被清除時,它們的編譯開始並行。但是在VS2008中,即使有這樣的參數,一切都很好。

1

IncrediBuild的最新公開版本引入了一個功能,它正是您所要求的 - 真正無序\優化的並行化。 此新功能允許IncrediBuild並行執行Visual Studio任務,即使在Visual Studio不知道如何執行此操作的情況下也是如此。這意味着在IncrediBuild中,並非真正依賴於前一個任務的每個任務都將與其並行執行。

因此,在上述場景中,儘管填充固定的輸出對象文件名會導致Visual Studio(和MSBuild)以順序方式編譯這些文件,但IncrediBuild會並行編譯它們。

除此之外,在項目B依賴於項目A的情況下,Visual Studio只會從項目B編譯源代碼在完成了A的鏈接後(儘管大部分時間項目B編譯並不依賴於項目一個彙編,只有這些項目的鏈接步驟相互依賴),IncrediBuild將能夠並行編譯項目A和項目B,然後鏈接A和鏈接B.

希望這個棚子有關該主題的一些信息。

聲明:作家是IncrediBuild的首席技術官

相關問題