visual valido studio seleccione proyecto para modo inicio este elemento depurar depuracion configuracion compilacion cambie c++ visual-studio visual-studio-2010 compilation

c++ - valido - # Define automáticamente según la configuración de depuración/lanzamiento en Visual Studio



para depurar este modulo cambie la configuracion de compilacion del proyecto a modo de depuracion (4)

Tengo salida de depuración en mi programa de esta manera:

#ifdef DEBUG std::cout << "[RE_words] " << re << std::endl; try { boost::regex regex(re); std::cout << "[RE_words] " << "passed" << std::endl; } catch (exception& e) { std::cout << "[RE_words] " << "failed: " << e.what() << std::endl; } #endif

y DEBUG se define en mi programa manualmente. Siempre hago comentarios fuera de línea cuando hago una versión de lanzamiento. En Visual Studio, también hay configuraciones para versiones de depuración frente a versiones que manejan la línea de comandos, etc., que se utilizan para compilar. ¿También puedo usar la configuración "Depurar" para definir automáticamente DEBUG para el compilador? ¿Cómo?


Sí, debe consultar la página de opciones del proyecto, Compilar-> Opciones de compilación avanzadas. Sin embargo, VS por defecto define automáticamente la directiva DEBUG para el modo de depuración.


Utilice _DEBUG . Visual C ++ define esto para una configuración de depuración. Consulte las directivas del preprocesador para la configuración de depuración en el cuadro de diálogo de propiedades de su proyecto.


Visual Studio define automáticamente el símbolo _DEBUG para compilaciones de depuración (y NDEBUG para compilaciones que no son de depuración).

Otra forma de hacer esto es ir a la configuración del proyecto -> propiedades de configuración -> C / C ++ -> preprocesador, y editar las definiciones del preprocesador manualmente.

Ver también:
Esta respuesta explica las diferencias entre _DEBUG y NDEBUG en más detalle.
Esta respuesta explica el propósito del símbolo NDEBUG y si el estándar lo define o no.


Yo también pensé que solo tenía que mirar la propiedad del preprocesador y eliminar _DEBUG. Visual Studio intenta ayudar estableciendo _DEBUG si selecciona una de las opciones de la biblioteca de tiempo de ejecución de depuración.

En la página de propiedades del proyecto Configuración Propiedades / C / C ++ / Generación de código, la opción seleccionada para Runtime Library afecta varias definiciones. Al seleccionar una biblioteca de depuración ( / MTd o / MDd ), se define _DEBUG define.

Consulte MSDN / MD, / MT ... para obtener más información sobre los conmutadores. Hay varias #defines que se establecen en base a estas opciones. ¡Son bastante invisibles cuando intentan encontrar quién configura #define antes de que incluyas cualquier archivo de encabezado!