Avatar ·

¿Cuál es la diferencia entre las compilaciones Debug y Release en CMake y cómo configurarlas correctamente?

¡Hola! Acabo de empezar a aprender CMake para mis proyectos de C++ y no puedo entender la diferencia entre las configuraciones Debug y Release. En Visual Studio estoy acostumbrado a seleccionar el modo de compilación, mientras que en CMake se usa `CMAKE_BUILD_TYPE`. Escribí un CMakeLists.txt simple: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) add_executable(myapp main.cpp) ``` Y compilo así: ```bash mkdir build && cd build cmake .. cmake --build . ``` Pero no especifico `-DCMAKE_BUILD_TYPE=Debug` o `Release`. ¿Qué sucede entonces? ¿Cuál es la compilación por defecto? Y lo más importante: ¿cómo configurar correctamente diferentes flags de compilación para Debug (con información de depuración, sin optimizaciones) y Release (con optimizaciones, sin información de depuración)? He oído que en CMake hay variables integradas como `CMAKE_CXX_FLAGS_DEBUG` y `CMAKE_CXX_FLAGS_RELEASE`, pero no entiendo cómo usarlas. También me interesa saber cómo hacer que en modo Debug se habiliten los assert y en Release no.