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


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

一般在調用./configure時,可以通過設置CXXFLAGS或者CFLAGS使程序可以支持調試,就是可以用GDB查看程序運行的信息,但在cmake編譯時,在cmake過程和后面的make及make install都無法加入調試信息。

采用 $ gdb   調試時 出現 如下 錯誤:

      (no debugging symbols found)

其實是可以讓cmake在編譯時支持gdb調試的,可以通過如下方法來進行設置:

在CMakeLists.txt中加入如下:

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;

然后重新cmake之后再make就可以通過gdb執行生成的可執行文件了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM