CMake编译时支持GDB调试

一般在调用./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 names
cmake_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的值。

你可能感兴趣的:(gdb,调试,cmake)