es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo agregar un símbolo a CMake, solo en modo de depuración.

Quiero que el siguiente código solo se compile en modo de depuración

main.cpp

#ifdef __DEBUG__
    int a=1;
    std::cout<<a; #endif="" ```="" agregando="" lo="" siguiente="" a="" cmake="" ```="" add_compile_options(="" "-d__debug__"="" )="" ```="" o="" ```="" add_compile_options(=""></a;><config:debug>:-D__DEBUG__>"
)

simplemente no parece hacer nada.

¿Cómo puedo lograr el comportamiento deseado?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el comportamiento deseado, debes agregar la definición de la macro __DEBUG__ a las opciones del compilador solo cuando estés compilando en modo de depuración. Se deben agregar las siguientes líneas a tu archivo CMakeLists.txt:

    if(CMAKE_BUILD_TYPE MATCHES Debug)
      add_compile_definitions(__DEBUG__)
    endif()
    

    Esto verifica si el tipo de construcción está configurado como “Debug” (lo cual es el valor predeterminado en la mayoría de los proyectos basados en CMake) y, si es así, agrega la definición de la macro __DEBUG__ a las opciones del compilador. Esto garantizará que el código que deseas compilar solo se incluirá en el binario al compilar en modo de depuración, y se excluirá al compilar en modo de versión final.

Comments are closed.