在构建类型之间切换,例如调试和释放

CMake 知道几种构建类型,这些类型通常会影响默认编译器和链接器参数(例如正在创建的调试信息)或替代代码路径。

默认情况下,CMake 能够处理以下构建类型:

  • 调试 :通常是经典的调试版本,包括调试信息,无需优化等。
  • 发布 :典型的发布版本,没有调试信息和完全优化。
  • RelWithDebInfo ::Release 相同,但带有调试信息。
  • MinSizeRel : 针对大小优化的特殊版本构建。

如何处理配置取决于正在使用的生成器。

某些生成器(如 Visual Studio)支持多种配置。CMake 将立即生成所有配置,你可以从 IDE 或使用 --config CONFIG(使用 cmake --build)选择要构建的配置。对于这些生成器,CMake 将尽力生成构建目录结构,以使来自不同配置的文件不会相互衔接。

仅支持单个配置(如 Unix Makefiles)的生成器的工作方式不同。这里当前活动的配置由 CMake 变量 CMAKE_BUILD_TYPE 的值确定。

例如,要选择不同的构建类型,可以发出以下命令行命令:

cmake -DCMAKE_BUILD_TYPE=Debug path/to/source
cmake -DCMAKE_BUILD_TYPE=Release path/to/source

CMake 脚本应避免设置 CMAKE_BUILD_TYPE 本身,因为通常认为用户有责任这样做。

对于单配置生成器,切换配置需要重新运行 CMake。后续构建可能会覆盖先前配置生成的目标文件。