目录
二、复合配置生成器CMAKE_CONFIGURATION_TYPES
一、单配置生成器CMAKE_BUILD_TYPE
CMake可以配置构建类型,例如:Debug、Release等,控制生成构建系统使用的配置变量 是 CMAKE_BUILD_TYPE 。该变量默认为空,CMake识别的值为:
- Debug:用于在没有优化的情况下,使用带有调试符号构建库或可执行文件。
- Release:用于构建的优化的库或可执行文件,不包含调试符号。
- RelWithDebInfo:用于构建较少的优化库或可执行文件,包含调试符号。
- MinSizeRel:用于不增加目标代码大小的优化方式,来构建库或可执行文件。
1.CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(setType LANGUAGES CXX)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE release CACHE STRING "Build Type" FORCE)
endif()
message(STATUS "Build type:${CMAKE_BUILD_TYPE}")
message(STATUS "Debug configuration:${CMAKE_CXX_FLAGS_DEBUG}")
message(STATUS "release configuration:${CMAKE_CXX_FLAGS_RELEASE}")
message(STATUS "release configuration with debug info:${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
message(STATUS "minimal release configuration:${CMAKE_CXX_FLAGS_MINSIZEREL}")
2.构建
(1)Release
直接cmake ..构建:
(2)Debug
通过-D来设置CMAKE_BUILD_TYPE :
cmake -D CMAKE_BUILD_TYPE=debug ..
二、复合配置生成器CMAKE_CONFIGURATION_TYPES
CMake支持复合配置生成器,可以使用 CMAKE_CONFIGURATION_TYPES 变量对这些生成器的可用配置类型进行调整,CMAKE_CONFIGURATION_TYPES 变量接受一个值列表。
使用CMAKE_BUILD_TYPE 并不能修改VS的配置,用VS打开后默认是debug x64,而使用CMAKE_CONFIGURATION_TYPES可以修改VS的默认配置。
1.Release版本VS2019 x64
cmake .. -D CMAKE_CONFIGURATION_TYPES="Release"
2.Release/Debug版本VS2017 x64
(1)构建
cmake .. -G"Visual Studio 15 2017 Win64" -D CMAKE_CONFIGURATION_TYPES="Release;Debug"
该命令将为Release和Debug配置生成一个构建树。然后可以使用 --config 标志来决定构建这两个中的哪一个。
(2)编译Release
cmake --build . --config Release
(3)编译Debug
cmake --build . --config Debug