Cmake-添加对gdb的支持

发布时间 2023-10-07 14:22:57作者: njit-sam

其实很简单,在CMakeList.txt文件前面添加命令

set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

但是其实折腾了我好一会,我加了一直提示我这个
image
死活找不到调试信息
网上找到的代码都是上面那三句话,后来我看了我的cmake版本是3.10.2
我把命令改成了下面这样

set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_DEBUG $ENV{CXXFLAGS} -O0 -Wall -g -ggdb)
set(CMAKE_CXX_FLAGS_RELEASE $ENV{CXXFLAGS} -O3 -Wall)

其实是不用加双引号的,就这一点点东西,结果大不同,以后用东西的时候,要多多注意版本
为什么这样加就可以?

原因是CMake 中有一个变量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release RelWithDebInfo >和 MinSizeRel。
当这个变量值为 Debug 的时候,CMake 会使用变量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作为编译选项生成 Makefile