问在gcc中使用-g和-O2选项ENgcc 提供了为了满足用户不同程度的的优化需要,提供了近百种优化选项,用...
CMakeCache.txt:129:CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG CMakeCache.txt:150:CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG CMakeCache.txt:153:CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG CMakeCache.txt:156:CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG cmake设置...
--O2:进行更多优化 --O3:进行最大优化 --Os:进行优化以缩小代码尺寸 2.调试参数:--g:生成调试信息 - -ggdb:生成GDB可用的调试信息 - -gdwarf:生成DWARF调试信息 3.警告参数:- -Wall:开启所有警告 - -Werror:将所有警告视为错误 - -Wextra:开启额外的警告 - -Wno-unused-parameter:忽略未使用...
1后编译代码无法同时使用-g和-O2是为什么?我升级了gcc9.1,但是编译代码出错了,现象是-g和-O2选项...
就绝大部分目的而言,调试时用“-O0”,开发和部署时用“-O2”就足够了。 在GCC下,可以组合使用优化与调试选项“-g”,而许多其他编译器不支持这样做。当程序出人意料地崩溃时,有点调试信息总比什么都没有要好---所以推荐你在优化程序时加上“-g”选项,即为了开发,也为了部署。GNU发行的软件包默认都打开了...
-O0 、-O1 、-O2 、-O3 编译器的优化选项的 4 个级别,-O0 表示没有优化, -O1 为默认值,-O3 优化级别最高。 -g 只是编译器,在编译的时候,产生调试信息。 -gstabs 此选项以 stabs 格式声称调试信息, 但是不包括 gdb 调试信息。 -gstabs+
-g:添加调试信息,如果要使用调试工具(如 GDB)的话就必须加入此选项,此选项指示编 译的时候生成调试所需的符号信息。 -O:对程序进行优化编译,如果使用此选项的话整个源代码在编译、链接的的时候都会进 行优化,这样产生的可执行文件执行效率就高。 -O2:比-O 更幅度更大的优化,生成的可执行效率更高,但是整个编...
# -O2 除了完成-O1的优化之外,还进行一些额外的调整工作,如指令调整等。 # -O3 则包括循环展开和其他一些与处理特性相关的优化工作。 # 选项将使编译的速度比使用 -O 时慢, 但通常产生的代码执行速度会更快。 # 使用 -O2优化源代码,并输出可执行文件 ...
O2:包含-O1的优化并增加了不需要在目标文件大小和执行速度上进行折衷的优化。编译器不执行循环展开以及函数内联。会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。大多数情况下,推荐使用 O2 这一级优化选项就足够了。
-O2 允许比-O更好的优化,编译速度较慢,但结果程序的执行速度较快。 -g 产生一张用于调试和排错的扩展符号表。-g选项使程序可以用GNU的调试程序GDB进行调试。优化和调试通常不兼容,同时使用-g和-O(-O2)选项经常会使程序产生奇怪的运行结果。所以不要同时使用-g和-O(-O2)选项。