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模式下禁用。以及