Avatar ·

Was ist der Unterschied zwischen Debug- und Release-Builds in CMake und wie konfiguriert man sie richtig?

Hallo! Ich habe gerade angefangen, mich mit CMake für meine C++-Projekte zu beschäftigen und kann den Unterschied zwischen den Konfigurationen Debug und Release nicht verstehen. In Visual Studio bin ich es gewohnt, den Build-Modus auszuwählen, während in CMake dafür `CMAKE_BUILD_TYPE` verwendet wird.\n\nIch habe eine einfache CMakeLists.txt geschrieben:\n```cmake\ncmake_minimum_required(VERSION 3.10)\nproject(MyProject)\nadd_executable(myapp main.cpp)\n```\n\nUnd baue so:\n```bash\nmkdir build && cd build\ncmake ..\ncmake --build .\n```\n\nAber ich gebe kein `-DCMAKE_BUILD_TYPE=Debug` oder `Release` an. Was passiert dann? Welcher Build ist standardmäßig aktiv? Und vor allem – wie konfiguriere ich verschiedene Compiler-Flags für Debug (mit Debug-Informationen, ohne Optimierungen) und Release (mit Optimierungen, ohne Debug-Informationen) richtig?\n\nIch habe gehört, dass es in CMake eingebaute Variablen gibt