2010-04-23 34 views
12

我在主構建系統上使用Visual Studio 2008。我一直在玩另一款Visual Studio 2010。看起來,除非在編譯器開關中指定了/ MP開關,否則該工具仍然只想在編譯時使用一個核心(請參閱How do I turn on multi-CPU/Core C++ compiles in the Visual Studio IDE (2008)?)。我必須爲每個項目都做到這一點。有沒有辦法讓VS總是這樣做?總是在Visual Studio中使用多核(/ MP)標誌?

+1

我添加了'[visual-C++]'標籤,因爲我認爲'/ MP'標誌是特定於VC++編譯器的。 – 2010-04-23 00:44:54

回答

5

您可以創建一個所有項目都包含的property sheet,並在該屬性表中設置/MP標誌。

在Visual Studio 2010中,你可以把它放在Microsoft.Cpp.Win32.user屬性表,它包含在默認情況下,新的項目(它在它定義的舊的Visual C++目錄和其他默認設置)。我不知道修改默認的屬性表是確實是一個好主意,但它肯定是一個選項。

+0

從這個http://msdn.microsoft.com/en-us/library/3z7t21ew%28v=VS.90%29.aspx它看起來像我仍然必須進入每個項目,並告訴它繼承屬性表。 – dwj 2010-04-23 00:42:23

+0

@dwj:你會的,是的。另請注意我剛剛添加的關於Visual C++ 2010的內容。 – 2010-04-23 00:43:21

+0

修改包含的模板總是讓我感到緊張;如果我重新安裝,我忘記了!感謝指針;我真的希望MS能夠讓/默認爲默認值,或者允許它始終爲給定的開發人員/環境開啓。 – dwj 2010-04-23 00:52:11

14

創建環境變量「CL」並將其設置爲「/ MP」。微軟編譯器cl.exe總是在這個變量前加上命令行標誌。

某些編譯器功能和選項(如#import)與/ MP標誌不兼容。您需要將/ MP1添加到代碼中使用#import的項目中。這將禁用這些項目的MP。

+4

+1,尤其是對於/ MP1提示 – Macke 2013-02-04 06:56:19

+1

'#import'的問題在[C2813](http://msdn.microsoft.com/en-us/library/bb384890% 28v = vs.90%29.aspx),這是在VS2008及以上版本中使用/ MP開關時會出現的錯誤。 (注意:VS2005也有未公開的/ MP開關,但它沒有出現此錯誤。) – 2014-02-12 13:41:10

+0

其餘不兼容的功能在[這裏]描述(https://msdn.microsoft.com/en-us/library /bb385193.aspx) – gagallo7 2016-10-28 21:53:24

相關問題