2014-05-02 73 views
0

在NT構建環境a.k.a. Windows DDK構建環境中,通過指定build.exe的-M參數,可以使用多個處理器構建源樹。它所做的是按照依賴順序構建你的項目,並且當它構建每個項目時,它會啓動多個線程來構建單個源文件,顯然,首先構建預編譯頭文件以及其他需要完成的任務在其他源代碼可以構建之前(midl等)爲什麼Visual Studio多處理器構建可以完成多個項目而不是多個源文件?

Visual Studio/MSBuild採用了非常不同的方法。它使用多線程構建項目,但只能按順序構建單個源文件。當你有很多小項目時,這很有用。當你有很多源文件的項目時,這是令人沮喪的。

是否有人足夠了解Visual Studio人員爲什麼不使用線程來構建像Windows民歌那樣的單個源文件(或者至少以前用過)?

+0

退房:http://www.hanselman.com/blog/FasterBuildsWithMSBuildUsingParallelBuildsAndMulticoreCPUs.aspx和http://www.hanselman.com/blog/HackParallelMSBuildsFromWithinTheVisualStudioIDE.aspx – jessehouwing

+0

「DDK」給了我們,你是專門詢問線索關於.vcxproj項目。是對的嗎?如果是這樣,你可能需要調整你的標籤。 –

回答

0

我的問題的答案是元素。要在GUI中看到它,調出項目屬性,選擇「C++」,然後選擇「常規」。如果將其設置爲true,那麼該項目將首先生成PCH文件,然後它將爲每個c/cpp文件啓動一個「cl.exe」進程,直到該機器具有的處理器數量爲止。一旦所有文件都被構建完成,那麼它將與一個進程鏈接。

這不同於Visual Studio也會啓動多個msbuild副本以同時構建多個項目。

相關問題