2010-05-17 106 views
24

我有40多個項目的大型解決方案。其中幾乎一半是測試項目。 在我的項目中,我們使用代碼合同,代碼分析,風格分析。 我希望能夠在我的四核CPU上構建並行不依賴的項目。Visual Studio 2010,如何在多核上並行構建項目

如何設置msbuild並行構建項目?

+0

這個問題並不清楚這個問題是直接在VS2010中編譯還是通過msbuild4編譯,下面你對日誌中爭用的評論應該是一個答案 – GregC 2012-06-20 17:04:56

回答

4

我知道有一個支持-j開關並行編譯NMAKE的克隆:

http://qt.gitorious.org/qt-labs/jom

而且也是一個的MSBuild黑客,它只是谷歌。我也知道有一種工具支持在多個機器上構建,也可能在多個內核上構建,但目前我不記得它的名字。

希望這有助於。

13

你可以在MSBuild並行地啓動構建:

  • MSBuild任務的屬性BuildInParallel與參數/maxcpucount:X設置爲true

    <Target Name="RunInParallel"> 
        <MSBuild BuildInParallel="true" 
          Projects="@(Projects)" 
          Targets="RunCodeAnalysis"> 
        </MSBuild> 
    </Target> 
    
  • 或調用的MSBuild其中X指定構建中涉及的工作進程數量。該解決方案更適合您的需求。

    msbuild [YourSolutionFile.sln] /maxcpucount:4 /p:Platform=AnyCpu;Configuration=Debug; 
    

斯科特Hanselman的上寫道a post,如果你想集成(有點)的過程到Visual Studio作爲外部工具。


對於C++項目,你可以直接在Visual Studio中設置多處理器編譯:

Tools | Options | Projects and Solutions | Build and Run

+0

謝謝,我們沒有進入C++,但是如果其他讀者是那麼你應該看看這個工具:http://www.xoreax.com/visual_studio.htm – 2010-05-18 11:41:30

16

在Visual Studio:工具|選項|項目和解決方案|構建並運行。這應該默認爲你的CPU數量。

從命令行:msbuild /maxcpucount[:n](未指定n,則將使用CPU計數)。

+14

我們還發現,在Visual Studio中:工具 - >選項 - >項目和解決方案 - >構建和運行 - >。 您可以將MSBuild項目構建輸出詳細程度和日誌文件詳細程度都設置爲:Quiet。 這將使構建過程更加快速,IDE在構建過程中響應更快(它與VS2010與輸出相關的IDE鎖定是緩慢構建過程中的主要因素ess)< - MS:請修復! – 2010-05-18 11:46:41

+1

上帝保佑你@thomasnn – 2012-05-23 08:25:17

3

然後,您正在尋找的真正答案是將/ MP編譯器標誌添加到CXX編譯器標誌。

在Visual Studio中在項目屬性頁面下> C \ C++>常規多處理器編譯只需輸入Yes(/ MP)。現在,它將在每個核心上並行構建所有40個項目。

2

這是針對所有語言的Visual Studio 11構建的,而不僅僅是C++。 「Visual Studio 2010包含」最大並行項目構建數量「選項。儘管沒有任何限制,但此IDE選項僅適用於C++項目。幸運的是,這個限制不再適用於Visual Studio 11「www.visualstudiomagazine.com

相關問題