CMake 还提供了一些预定义的构建类型标志,可以在不同的构建类型中使用: set(CMAKE_CXX_FLAGS_RELEASE "-O2") # Release 构建 set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") # Debug 构建 set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os") # MinSizeRel 构建 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") # R...
区分Debug 还是 Release 可通过判断变量CMAKE_BUILD_TYPE,此变量可设置为四种不同的值: Debug Release MinSizeRel RelWithDebInfo (使用 Release 编译并且可以使用调试器) 注: Release 编译有很多等级,如 O1, O2, O3, O3 为最高,O表示optimization优化。 此外,每个 Release 编译都会定义宏NDEBUG,Debug 编译一般会...
在CMakeLists.txt中可以自定义编译选项变量 set(CMAKE_CXX_FLAGS_RELEASE "-O2") 1. 然后运行cmake的时候,传入相应的构建类型即可 cmake -DCMAKE_BUILD_TYPE=Release 1. 常用命令 详情可参考对应版本的CMake文档。 检查CMake版本 cmake版本至少为2.8 cmake_minimum_required(VERSION 2.8) 1....
AI代码解释 //设置一个string类型的缓存变量,名称为FOO,变量值为BARset(FOO"BAR"CACHESTRING"interesting value"FORCE)//设置一个string类型的缓存变量,名称为CMAKE_BUILD_TYPE,变量值为Releaseset(CMAKE_BUILD_TYPEReleaseCACHESTRING"Build type"FORCE) 2.1.3 变量作用域 • 函数作用域: 用于执行用function() ...
Release 版本 参数 含义 /MD /ML 或 /MT 使用发布版本的运行时刻函数库 /O1 或 /O2 优化开关,使程序最小或最快 /D "NDEBUG" 关闭条件编译调试代码开关 (即不编译assert函数) /GF 合并重复的字符串, 并将字符串常量放到只读内存, 防止被修改
RelWithDebInfo 模式:-O2 -g -DNDEBUG,(较少见)在 Release 模式的基础上,加入一些调试信息 在使用 cmake 时往往需要指定编译模式,在讨论之前我们需要对构建系统进行分类: single configuration generator: Unix-Makefiles, MinGW Makefiles, Ninja ... ...
CMAKE_BUILD_TYPE编译类型(Debug, Release) # 设定编译类型为debug,调试时需要选择debug set(CMAKE_BUILD_TYPE Debug) # 设定编译类型为release,发布时需要选择release set(CMAKE_BUILD_TYPE Release) CMAKE_BINARY_DIR PROJECT_BINARY_DIR _BINARY_DIR 这三个变量指代的内容是一致的。 如果是 in source buil...
Build type:这是程序最终编译的类型,意味着编译器该以何种程度对源代码进行优化,比如 Debug 版本一般再 gcc 中对应 o2 的优化,release 版本对应 o3 的优化,两者一般存在 10 倍左右的性能差距。 Toolchain:这是前面所说的编译工具链,一般来说,想要切换编译器,你切换这个选项就行了,默认使用 default 工具链。 Gene...
示例:在项目根目录执行cmake -DCMAKE_BUILD_TYPE=Release .,将以Release模式编译项目。 4. 生成构建文件: 执行上述步骤后,cmake命令将在构建目录下生成相应的构建文件。这些文件即构建系统所需的脚本和配置文件,用于构建项目。 5. 构建项目: 构建文件生成后,可以使用相应的构建系统来构建项目。例如,对于Makefile构...
在开始构建 debuginfo 包之前,我需要删除优化选项 -O2 或 -O3。这是我尝试过的:我在 CMakeLists.txt 中更改行如下: set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O2") set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -O0"...