常用CMakeLists.txt里有几行
1 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") |
主要用于在不同Build type下的编译选项
其中:
- O0
优化配置,不开启编译器优化,以免看不到里面参数值 - Wall
打开gcc的所有警告 - ggdb
Produce debugging information for use by GDB. This means to use the most expressive format available (DWARF 2, stabs, or the native format if neither of those are supported), including GDB extensions if at all possible. - g2
g分4个等级:
-g0等于不加-g。即不包含任何信息
-g1只包含最小信息,一般来说只有你不需要debug,只需要backtrace信息,并且真的很在意程序大小,或者有其他保密/特殊需求时才会使用-g1。
–g2为gdb默认等级,包含绝大多数你需要的信息。
–g3包含一些额外信息,例如包含宏定义信息。当你需要调试宏定义时,请使用-g3
其他的一些调试选项:
1 | set(CMAKE_BUILD_TYPE Debug) |