Avatar ·

CMake中Debug和Release构建的区别以及如何正确配置它们?

你好!我刚开始学习CMake用于我的C++项目,一直搞不懂Debug和Release配置之间的区别。在Visual Studio中,我习惯选择构建模式,而在CMake中则使用`CMAKE_BUILD_TYPE`。 我写了一个简单的CMakeLists.txt: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) add_executable(myapp main.cpp) ``` 然后这样构建: ```bash mkdir build && cd build cmake .. cmake --build . ``` 但我没有指定`-DCMAKE_BUILD_TYPE=Debug`或`Release`。那会发生什么?默认的构建是什么?最重要的是——如何正确配置Debug(带调试信息,无优化)和Release(带优化,无调试信息)的不同编译标志? 我听说CMake有内置变量如`CMAKE_CXX_FLAGS_DEBUG`和`CMAKE_CXX_FLAGS_RELEASE`,但不知道如何使用。另外,我感兴趣的是如何让assert在Debug模式下启用,而在Release模式下禁用。以及