CMake生成的可執行文件可以gdb調試

轉自:欣宇專欄漫遊學海之旅spa

通常在調用./configure時,能夠經過設置CXXFLAGS或者CFLAGS使程序能夠支持調試,就是能夠用GDB查看程序運行的信息,但在cmake編譯時,在cmake過程和後面的make及make install都沒法加入調試信息。.net

採用 $ gdb   調試時 出現 以下 錯誤:debug

      (no debugging symbols found)
調試

實際上是能夠讓cmake在編譯時支持gdb調試的,能夠經過以下方法來進行設置:code

在CMakeLists.txt中加入以下:blog

1 SET(CMAKE_BUILD_TYPE "Debug") 2 SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb") 3 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;get

而後從新cmake以後再make就能夠經過gdb執行生成的可執行文件了。it

相關文章
相關標籤/搜索