2010-04-23 25 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

相关问题