查询内置变量含义示例: cmake --help-variable CMAKE_MODULE_PATH 编译选项默认值: #编译类型Debug/Release,默认为Debug message("CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") #指定编译器 message("CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") message("CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}") #Deb...
区分Debug 还是 Release 可通过判断变量CMAKE_BUILD_TYPE,此变量可设置为四种不同的值: Debug Release MinSizeRel RelWithDebInfo (使用 Release 编译并且可以使用调试器) 注: Release 编译有很多等级,如 O1, O2, O3, O3 为最高,O表示optimization优化。 此外,每个 Release 编译都会定义宏NDEBUG,Debug 编译一般会...
CMake中有一个变量CMAKE_BUILD_TYPE,可以取值枚举入下:Debug Release RelWithDebInfo 和 MinSizeRel 当这个变量值为Debug的时候,Cmake会使用变量CMAKE_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG中的字符串作为编译选项生成Makefile, 当这个变量值为Release的时候,工程会使用变量CMAKE_CXX_FLAGS_RELEASE和CMAKE_CFLAGS_...
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") MESSAGE (STATUS "current is Debug mode") SET (EXECUTABLE_OUTPUT_PATH /tmp/c/2019-09-12-cmaketest/test11/build/Debug) ENDIF () # 如果是Debug模式,那么将可执行程序生成到build下的Release目录中 if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")...
CMake 中有一个变量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release Rel WithDebInfo 和 MinSizeRel。当这个变量值为 Debug 的时候,CMake 会使用变量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作为编译选项生成 Makefile ,当这个变量值为 Release 的时候,工程会使用变量 CMAKE_CXX_FLAGS_...
Debug>:d>.lib )使用变量$<CONFIG:Debug>变量来控制是否加字符d
CMake预先内置了四种构建类型:Debug,Release,RelWithDebInfo,MinSizeRel,可以满足大部分的使用情况,并通过预置的变量CMAKE_BUILD_TYPE表示当前的构建类型,可以通过修改它的值来改变构建类型,变量的初始值为空,表示不指定任何构建类型。 下面我们使用不同的构建模式来编译一个简单工程。
五、其他的内置变量 BUILD_SHARED_LIBS: set the default value when using ADD_LIBRARY() CMAKE_C_FLAGS: set compiler for c language CMAKE_CXX_FLAGS: set compiler for c++ language 六、区分debug和release 在工程build目录下执行cmake .. -DCMAKE_BUILD_TYPE=DEBUG|RELEASE,再执行make, 或者在顶级CM...
尽管如此,为了减少参数传递的复杂性,可以通过修改CMAKE_CONFIGURATION_TYPES变量,设定Debug和Release等配置类型,这样只需在一处修改即可影响整个项目的构建。为解决库或二进制文件名统一带来的困扰,可以在文件名后加上配置后缀,如libname_Debug.lib或exe_name_Release.exe,以区分不同版本。