Pregunta

Estoy utilizando VS2008, y el desarrollo de proyectos de C / C ++. Estoy utilizando el archivo .bat para construir mis proyectos desde la línea de comandos (VC2k8 símbolo del sistema). Necesito una manera de incluir Directiva preprossor dinámicamente en tiempo de compilación.

Estoy utilizando devenv para construir desde la línea de comandos.

>devenv my\project\path\myproject.sln /build release > logs\build.log

En realidad Quiero establecer una definición de macro en base a un parámetro de línea de comando para el archivo por lotes. Puedo mantener dos archivos .vcproj diferentes, pero que da un problema en mantener múltiples archivos de proyecto / sln. Mi archivo por lotes haría algo como esto ...

if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"

Cualquier ayuda sería muy apreciada.

Gracias.

¿Fue útil?

Solución

Una opción sería establecer la CL variable de entorno, usando algo como:

set CL=/DMYPROC_ENABLE_MYMODULE

El compilador de C ++ (cl.exe) añadirá el contenido de la variable de entorno CL a su línea de comandos cuando se ejecuta.

Sé que usted puede definir macros si se construye utilizando msbuild, pero no estoy seguro de que puede hacer lo mismo cuando se utiliza directamente devenv.

Otros consejos

Se puede hacer diferentes configuraciones para su solución y definir diferentes banderas del preprocesador para las diferentes configuraciones. A continuación, sólo se necesita para seleccionar la configuración en la línea de comandos y no hay necesidad de tener varios archivos de solución o de proyecto.

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