CMAKE的编译选项
在阅读一些工程源码中,CMakeLists文件通常看到一下内容:
set(CMAKE_CXX_FLAGS_DEBUG "-fPIC -O0 -g -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -O2 -g -Wall")
那我们的编译时,用的到底是哪一个呢?
cmake 默认使用的是Release模式,我们可以在通过一下方式指定Debug:
cmake .. -DCMAKE_BUILD_TYPE=Debug
或者可以在CMakeLists显示指定:
set(CMAKE_BUILD_TYPE "Debug")
如何确定编译版本
我们可以使用 readelf 命令来查看该二进制可执行文件是否包含 debugging symbols 信息
readelf -S cool |grep debug
而在Release模式下是没有相关的debug信息的