2010-04-23 11 views
12

Estoy usando Visual Studio 2008 en mi sistema de compilación principal. He estado jugando con Visual Studio 2010 en otro. Parece que la herramienta solo desea usar un núcleo cuando compila a menos que especifique el modificador/MP en los conmutadores del compilador (consulte How do I turn on multi-CPU/Core C++ compiles in the Visual Studio IDE (2008)?). Tengo que hacer esto para cada proyecto. ¿Hay alguna manera de hacer que VS siempre haga esto?¿Siempre usa bandera de múltiples núcleos (/ MP) con Visual Studio?

+1

He añadido la etiqueta '[visual-C++]' pues creo que la bandera '/ MP' es específico para el compilador de VC++. A partir de este –

Respuesta

5

Puedes crear un property sheet que incluya todos tus proyectos y establecer el indicador /MP en esa hoja de propiedades.

En Visual Studio 2010, que podría ponerlo en la hoja de propiedades Microsoft.Cpp.Win32.user, que se incluye en nuevos proyectos por defecto (que tiene la edad de C++ Visual directorios y otros ajustes predeterminados definidos en ella) No sé si la modificación de la hoja de propiedades predeterminada es realmente una buena idea, pero sin duda es una opción.

+0

http://msdn.microsoft.com/en-us/library/3z7t21ew%28v=VS.90%29.aspx parece que todavía tengo que entrar en cada proyecto y decirle que para heredar la hoja de propiedades. – dwj

+0

@dwj: Lo harías, sí. Tenga en cuenta también lo que acabo de agregar sobre Visual C++ 2010. –

+0

La modificación de plantillas incluidas siempre me pone nervioso; ¡Me olvido de hacerlo si reinstalo! Gracias por los consejos; Realmente esperaba que MS hiciera/MP el valor predeterminado o permitiera que siempre se activara para un desarrollador/entorno determinado. – dwj

14

Crear variable de entorno "CL" y ponerlo en "/ MP". El compilador de microsofts cl.exe siempre antecede los indicadores de línea de comando con esta variable.

Algunas características del compilador y opciones como import no son compatibles con la bandera/MP. Deberá agregar/MP1 a los proyectos utilizados #import en un código. Esto desactivará/MP para esos proyectos.

+4

1, especialmente para la punta/MP1 – Macke

+1

El problema con '# por importación está bien explicado en [C2813] (http://msdn.microsoft.com/en-us/library/bb384890% 28v = vs.90% 29.aspx), que es el error que obtendrá al usar el modificador/MP en VS2008 y superior. (Nota: VS2005 también tiene el conmutador MP no documentado, pero no tiene este error). –

+0

El resto de las características incompatibles se describen [aquí] (https://msdn.microsoft.com/en-us/library /bb385193.aspx) – gagallo7

Cuestiones relacionadas