¿Cómo detecto una compilación de depuración en mis archivos fuente c con cmake?

Tengo este conjunto en mi archivo CMakeLists.txt.

SET (CMAKE_BUILD_TYPE "Depurar")

Sin embargo, esto no funciona en mis archivos fuente de C

#if defined(DEBUG)
// not getting here
#else
// getting here instead
#endif

¿Qué símbolo, si alguno, se define configurando CMAKE_BUILD_TYPE en Debug?

preguntado el 02 de febrero de 12 a las 10:02

1 Respuestas

Encontré la respuesta. Definitivamente es una trampa para aquellos que son nuevos en el uso de cmake.

Parece que cambiar el tipo de compilación en CMakeLists.txt no cambiará el tipo de compilación si lo ha compilado previamente con otro tipo de compilación. La razón es por su caché.

Viendo que estoy construyendo fuera de la fuente. es decir, tengo un directorio de compilación separado dentro de mi árbol de fuentes. Normalmente ejecutaría solo "cmake .."

Así que limpiar el árbol de compilación y ejecutar "cmake .." lo solucionó de nuevo. Ahora DEBUG se está definiendo para mis archivos fuente y puedo verificarlo con make VERBOSE = 1

Este enlace proporciona más detalles y otras opciones:

Comprender por qué no se puede configurar CMAKE_BUILD_TYPE

Respondido 02 Feb 12, 14:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.