Pregunta

Estoy en el proceso de migración de nuestro proyecto VC ++ desde Visual Studio 2005 (VC8) a Visual Studio 2008 (VC9). Algunos de los proyectos de la solución tienen rutas de acceso a las bibliotecas de terceros en su campo 'Biblioteca directorios adicionales' en la configuración del proyecto. Los caminos tienen el siguiente aspecto:
.. \ SomeLibrary \ Lib \ VC9 \ x86

Sería muy útil si podía usar una de "página de propiedades Macros" de Visual Studio para sustituir a la versión del compilador, casi de la misma manera que puedo usar $ (ConfigurationName) a substitue de "depuración" o "Release ". Algo parecido a lo siguiente sería perfecto:
.. \ SomeLibrary \ Lib \ $ (CompilerVersion) \ x86

Por desgracia, no puedo encontrar un macro apropiado.

Tenga en cuenta que cuando digo 'macro' Me refiero a la "página de propiedades Macros" de Visual Studio, no en C / C ++ macros del preprocesador. Por lo que yo soy consciente de que no puede utilizar las directivas de preprocesador en la configuración del proyecto.

¿Alguien sabe de una manera de hacer esto?

¿Fue útil?

Solución

Se puede usar la página de propiedades macros $ (PlatformToolsetVersion) o $ (PlatformToolset) Para VC ++ 2012, por ejemplo, $ (PlatformToolsetVersion) se resuelve como "110" y $ (PlatformToolset) se resuelve como "V110". Por lo que añadir "vc $ (PlatformToolsetVersion)" a su trayectoria añadiría "vc110" bajo VC11 o "vc90" bajo VC9.

Otros consejos

Uso _MSC_VER:

#ifndef _MSC_VER
  // not VC++
#elif _MSC_VER < 1400
  // older than VC++ 2005
#elif _MSC_VER < 1500
  // VC++ 2005
#elif _MSC_VER < 1600
  // VC++ 2008
#elif _MSC_VER < 1700
  // VC++ 2010
#else
  // Future versions
#endif

Para un ejemplo más complicado, ver cómo impulso está tratando con versiones de VC ++ aquí

¿Ha tratado _MSC_VER. Para compilador de C ++ Microsoft`s esto le dará el número mayor y menor versión del compilador. Podría ser utilizado como delimitador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top