gcc/g++关闭优化 无法让GCC不优化程序,-O0 -g也不行,如何让GCC不要优化程序? GDB 调试的时候发现程序的一些变量被优化了出现:optimizedout, 修改了优化等级为-O0 也不行,加-g 也不行。 查了一些资料发现-O0 确实无法做到让Gcc不优化,GCC 还是会把一些内容优化了。 真是苦恼。难道除了在函数面前加__attri...
1. gcc中指定优化级别的参数有:-O0、-O1、-O2、-O3、-Og、-Os、-Ofast。 2. 在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。 3. 参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。 4. 参数 -Og 是...
1 -O0/-Og -O0是默认选项,不执行任何优化。在编译调试版本的时候,一般使用-O0,可以确保调试执行过程完全和代码一致(如果使用优化选项,根据源文件设定的断点和经过优化编译得到的程序可能对不上,所以不能准确停在预期的地方)。 -Og是针对调试的优化选项,它会启用-O1的优化指令,除了那么可能会干扰调试的优化选项...
GCC 4.6.4以上的版本优化等级是一样的,只是优化选项略有差异。 1 优化等级说明 GCC 4.6.4以上版本,有**-O0、-O1、-O2、-O3、-Os、-Ofast、-Og**几个优化等级,参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。 所有的优化选项...
-O 优化 -O1优化 -O2 -O0 -Os -Ofast -Og -Oz -O 选项控制特定的优化 Warnings Reference 编译步骤 gcc 、 g++分别是gnu的c & c++编译器 。实际上,GCC 能够编译三种语言:C、C++ 和 Object C(C 语言的一种面向对象扩展)。 GCC: the GNU Compiler Collection ...
某些优化可能导致程序行为的变化。在开启优化之前,请确保您的代码没有未定义行为或依赖于特定编译器行为的部分。 在调试过程中,由于优化可能改变代码的结构和布局,因此建议在调试时使用较低的优化级别(如-O0或-Og)。 通过遵循这些步骤,您可以使用GCC命令对C和C++代码进行优化。 0 赞 0 踩最新...
1. gcc中指定优化级别的参数有:-O0、-O1、-O2、-O3、-Og、-Os、-Ofast。 2. 在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。 3. 参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。
对于gcc来说,这通常意味着-g对-O的某些版本。现在,我看到了这样一种情况:优化的构建是用-O3构建的,而调试版本是用-g3和-O3构建的。mangcc确实表明这是可能的,但对于实际调试而言,这似乎与我的直觉相悖。回顾使我想起了-Og,它允许不干扰调试的优化。这对我来说是有意义的,但是,除非您基本上尝试调试...
gcc 中-O -O1 -O2 -O3 -Os -Ofast -Og优化的原理,一般来说,如果不指定优化标识的话,gcc就会产生可调试代码,每条指令之间将是独立的:可以在指令之间设置断
如:-ffast-math ,对于Fortran语言,还会启用下列选项: -fno-protect-parens -fstack-arrays 6.-Og: 该标识会精心挑选部分与-g选项不冲突的优化选项,当然就能提供合理的优化水平,同时产生较好的可调试信息和对语言标准的遵循程度。