原因: gcc中-g选项是为了获得有关调试信息,要用gdb进行调试,必须使用-g生成二进制可执行文件。 问题解决: 1、CMAKE没有设置Debug模式 set(CMAKE_BUILD_TYPE "Release") Release改为debug,同时编译标识也需要修改。 2、CMAKE没有设置-g set(CMAKE_CXX_FLAGS "-std=c++11 -Wall") 添加: set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -g") 完美解决。