区分Debug 还是 Release 可通过判断变量CMAKE_BUILD_TYPE,此变量可设置为四种不同的值: Debug Release MinSizeRel RelWithDebInfo (使用 Release 编译并且可以使用调试器) 注: Release 编译有很多等级,如 O1, O2, O3, O3 为最高,O表示optimization优化。 此外,每个 Release 编译都会定义宏NDEBUG,Debug 编译一般会...
endif()if(NOT DEFINED CMAKE_MINSIZEREL_POSTFIX)set(CMAKE_MINSIZEREL_POSTFIX"_release") endif() endif() 上面命令分别设置Debug模式下后缀为“_debug”,在Release模式下后缀为“_release”。 可以在根目录下的的CMakeLists.txt文件中设置该命令,则整个项目中子工程的dll和lib都会添加相应的后缀。 要注意该命...
SET(CMAKE_BUILD_TYPE "Debug”) 或者RELEASE模式: SET(CMAKE_BUILD_TYPE "Release") 也可以在cmake命令后带一个参数指定Debug还是Release模式 cmake -DCMAKE_BUILD_TYPE="Debug" .. if 和 debug/release模式 此处使用IF以及STREQUAL来区分两种不同的编译方式。根据RELEASE和DEBUG两种不同的编译方式,将生成的可...
在CMake中,区分Debug和Release构建类型是一项常见的需求。这可以通过设置不同的编译选项、优化级别和调试信息来实现。以下是一些关键步骤和示例代码,展示如何在CMake中配置和区分Debug和Release构建类型: 1. 设置构建类型 CMake允许通过命令行参数指定构建类型。常见的构建类型包括Debug、Release、RelWithDebInfo和MinSizeRe...
现在假设项目中只有一个文件main.cpp,下面是一个可以选择生成debug版和release版的程序的CMakeList.txt: 1 PROJECT(main) 2 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 3 SET(CMAKE_SOURCE_DIR .) 45 SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") ...
CMake预先内置了四种构建类型:Debug,Release,RelWithDebInfo,MinSizeRel,可以满足大部分的使用情况,并通过预置的变量CMAKE_BUILD_TYPE表示当前的构建类型,可以通过修改它的值来改变构建类型,变量的初始值为空,表示不指定任何构建类型。 下面我们使用不同的构建模式来编译一个简单工程。
很多时候我们用cmake编译第三方库时发现debug和release版本编译的库文件同名,使用起来非常不方便。在用cmake GUI客户端配置时,只需要新建如下配置项即可: CMAKE_DEBUG_POSTFIX # 含义为为DEBUG版本的库添加后缀比如d 配置结果 添加过程 这样编译的出来的DEBUG库就会自动添加d为后缀...
在Visual Studio中我们可以生成debug版本和release版本的程序,使用Cmake我们也可以达到同样的效果。debug版本的项目生成的可执行文件需要有调试信息并且不需要进行优化,而release版本的不需要调试信息但是需要优化。这些特性在gcc/g++中通过编译时的参数来决定的,如果将优化程度调到最高需要设置 -O3 ,最低的...
Debug版本就是调试版本,Visual C++ 6.0默认的就是Debug版本。在Debug版本中,可以使用单步执行、跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢。Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。还有一点,Release版本的exe文件链接的目标是标准的...