Pregunta

Estoy intentando usar la opción del compilador A /D en MSVC6 para definir una cadena, pero hay algo extraño en usar citas dobles a su alrededor. Para depurar este problema, sería extremadamente útil para mí poder ver qué valor el preprocesador realmente está sustituyendo en mi código donde se expande la macro. ¿Hay alguna forma de hacer esto? Intenté crear un archivo de listado con "ensamblaje y fuente", pero la fuente contiene el nombre macro original y el ASM es un galimatriz incomprensible en esa línea. ¿Hay alguna forma de obtener el valor macro en el momento de la compilación?

De lo contrario (o quizás más útil), ¿cómo especifico una cadena con la opción /D? Necesita sustituir a mi fuente con citas dobles a su alrededor, ya que lo estoy usando como una cadena literal.

¿Fue útil?

Solución

Pruebe una de las siguientes opciones para cl.exe:

/E preprocess to stdout
/P preprocess to file

Si está construyendo dentro de Visual Studio, puede especificar opciones de línea de comandos personalizadas en uno de los cuadros de diálogo de propiedades del proyecto.

Otros consejos

MSVC tiene un indicador de compilador que le permite ver el archivo fuente preprocesado con todas las macros expandidas, retiradas, etc., toda la unidad de traducción en términos del código real que se compilará. La salida preprocesada debe darle la información que está buscando con respecto a su expansión macro. Más información aquí.

Hay una opción para pasar al compilador (/P) y escribirá la salida del preprocesador en my_cpp_file.i donde puedas mirarlo.

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