CMake编译时支持GDB调试

来源:互联网 发布:淘宝如何买到烟花 编辑:程序博客网 时间:2024/05/22 04:34

一般在调用./configure时,可以通过设置CXXFLAGS或者CFLAGS使程序可以支持调试,就是可以用GDB查看程序运行的信息,但在cmake编译时,在cmake过程和后面的make及make install都无法加入调试信息。


当然可以加入调试信息的,方法如下:


修改CMakeLists.txt文件,如我修改如下:

# Version 2.4 might work, but it won't find static libraries with odd namescmake_minimum_required(VERSION 2.6)# CMake used to complain without this#if(COMMAND cmake_policy)#  cmake_policy(SET CMP0003 NEW)#endif(COMMAND cmake_policy)SET(CMAKE_BUILD_TYPE "Debug")SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
在CMakeLists.txt文件的开头部分增加上面的几个SET语法行,简单解释如下:

在cmake中有一个全局的环境变量,CMAKE_BUILD_TYPE,可以取Release或者Debug等值。然后可以通过设置CMAKE_CXX_FLAGS_DEBUG来设置在debug时的CXXFLAGS,这个值大家肯定都熟悉的哈。如果不需要添加调试信息,就直接修改CMAKE_BUILD_TYPE的值。