2011-09-30 21 views
5

tres partes primera pregunta:macros para construir comentarios y propiedades en Visual Studio 11

  1. son las macros en tiempo de compilación plasmen plenamente en Visual Studio 11?
  2. ¿Cómo puedo editar & ellas definen en el IDE?
  3. ¿Cómo puedo dejar que las macros todavía tienen su significado durante la sesión de depuración?

Tenga en cuenta que me refiero a la build-time macros como $(ProjectDir), no las macros IDE utilizado para grabar una serie de pulsaciones de teclas - que took those away, pero puedo vivir sin ellos. He estado definiendo mis propias macros en tiempo de compilación a través de las páginas de propiedades en Visual Studio 10. Por ejemplo, podría crear una macro para definir dónde Boost está instalado en el ordenador local llamado $(BoostDir) en x64 construye a través de Ver> Administrador de propiedades> Microsoft.Cpp.x64.user:

macro definitions in VS10

que utilizar esta funcionalidad, ya que podría tener (por ejemplo) Boost instalado en diferentes lugares en diferentes equipos. Estas propiedades son específicas de la máquina y no se controlan en el control de origen. Luego puedo usar estas macros en la configuración del proyecto que está registrada en el control de fuente, y debería funcionar en todas las máquinas en las que compilo este proyecto, siempre que haya definido las macros para esa máquina.

enter image description here

Al tratar de compilar & correr mis proyectos VS10 en el Visual Studio 11 Developer Preview, estoy corriendo en un par de problemas con respecto a estas macros.

primer lugar, en VS11 no parece ser una interfaz para definir estas macros definidos por el usuario. Donde estaban en VS10, ahora hay apenas nada en VS11:

enter image description here

Parece que estas macros existen en algún nivel dentro del compilador/IDE, porque soy capaz de compilar mi proyecto sin errores, que no podría hacer si estas macros no existieran en alguna parte.

En segundo lugar, mientras que las macros parecen existir durante el proceso de construcción, que no parecen existir durante la sesión de depuración. Macros que utilizan para resolver los directorios en los que existen ciertos archivos DLL en VS10 ahora no resuelven esos directorios en VS11, y tengo errores de tiempo de ejecución:

enter image description here

El directorio donde se encuentra esta DLL se define aquí en VS10 y VS11:

enter image description here

... pero mis macros no parece significar nada durante la sesión de depuración.

¿Cómo puedo obtener toda la funcionalidad relacionada con la macro que dependía de VS10 de vuelta en VS11?

Respuesta

1

Si aún no ha descubierto cómo hacerlo, debe usar sus propias hojas de propiedades.

Crea una nueva hoja de propiedades y utiliza la sección en Propiedades comunes> Macros de usuario.

Por ejemplo, tengo una macro llamada BOOST_VER en una hoja de propiedades denominadas IncludeBoost.props que puse todo en.

User Macros 
Name  Value 
BOOST_VER 1.49.0 

C/C++ > General > Additional Include Directories > 
"$(environment variable)\3rdParty\Boost_$(BOOST_VER)\Boost";%(AdditionalIncludeDirectories) 

C/C++ > Preprocessor > Preprocessor Definitions > 
BOOST_ALL_DYN_LINK;%(PreprocessorDefinitions) 

Linker > General 
$(env var)\3rdParty\Boost_$(BOOST_VER)\Boost\lib\$(Platform);%(AdditionalLibraryDirectories) 

Tenga en cuenta que la plataforma adecuada es recogido también (Win32 o x64).

BTW, el Administrador de propiedades admite Ctrl + clic en la selección múltiple.

HTH.

0

Mi Microsoft.Cpp.x64.user.props, que creo que es lo que ha editado, se encuentra en mi% blah% \ AppData \ Local \ Microsoft \ MSBuild \ v4.0.Supongo que VS11 no usa este para la configuración de compilación. Lo que realmente debe hacer es crear su propio property sheet para usar con sus proyectos.

Cuestiones relacionadas