-O1-O: 较低的优化级别,编译器会尝试减少空间大小和优化程序的执行时间,但不执行需要消耗大量编译时间的优化 -O2: 较高的优化级别,牺牲更多编译时间来提高程序的性能 -O3: 最高的优化级别,宁愿牺牲空间来提升程序的执行速度 -Og: 主要使用-O1优化, 除了那些影响调试的部分 -Os: 侧重于优化文件的体积...
当优化标识被启用之后,gcc编译器将会试图改变程序的结构(当然会在保证变换之后的程序与源程序语义等价的前提之下),以满足某些目标,如:代码大小最小或运行速度更快(只不过通常来说,这两个目标是矛盾的,二者不可兼得)。 在不同的gcc配置和目标平台下,同一个标识所采用的优化种类也是不一样的,这可以使用-Q --help...
优化等级 -O1 -O2 -O3 -Os -Ofast -Og 一下内容摘自 Using the GNU Compiler Collection (GCC) 一般来说,如果不指定优化标识的话,gcc就会产生可调试代码,每条指令之间将是独立的:可以在指令之间设置断点,使用gdb中的 p命令查看变量的值,改变变量的值等。并且把获取最快的编译速度作为它的目标。
1 -O0/-Og -O0是默认选项,不执行任何优化。在编译调试版本的时候,一般使用-O0,可以确保调试执行过程完全和代码一致(如果使用优化选项,根据源文件设定的断点和经过优化编译得到的程序可能对不上,所以不能准确停在预期的地方)。 -Og是针对调试的优化选项,它会启用-O1的优化指令,除了那么可能会干扰调试的优化选项...
优化等级 -O1 -O2 -O3 -Os -Ofast -Og 一下内容摘自 Using the GNU Compiler Collection (GCC) 一般来说,如果不指定优化标识的话,gcc就会产生可调试代码,每条指令之间将是独立的:可以在指令之间设置断点,使用gdb中的 p命令查看变量的值,改变变量的值等。并且把获取最快的编译速度作为它的目标。
-O3:该选项除了执行-O2所有的优化选项之外,一般都是采取很多向量化算法,提高代码的并行执行程度,利用现代CPU中的流水线,Cache等 -Og:该标识会精心挑选部分与-g选项不冲突的优化选项,当然就能提供合理的优化水平,同时产生较好的可调试信息和对语言标准的遵循程度 ...
Og: 优化性能同时不损害可调试性。包含O1选项中不损害可调试性的优化项 Ofast: 忽视严格的标准编译性。包含O3中所有选项及` -ffast-math` O1优化项 代码语言:txt 复制 -fauto-inc-dec -fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim ...
在GCC 中关闭特定的优化标志,可以使用 -fno- 选项。例如,如果要关闭 -O2 优化标志,可以使用 -fno-builtin 选项。 以下是一些常用的 GCC 优化标志: -O0:关闭所有优化选项 -O1:启用基本优化选项 -O2:启用更多优化选项 -O3:启用最高级别的优化选项 -Os:优化代码大小 -Ofast:启用快速优化选项 -Og:启用调试优化...
控制优化,如-O -O0 -O1 -O2 -O3 -Os -Ofast -Og等; 控制预处理; 控制汇编; 控制链接,如-shared -shared-libgcc -symbolic -llibrary; 控制代码生成; 控制编译过程所需要搜索的目录,如-Bprefix -Idir -I-; 硬件依赖; 开发者相关。 这里只是分类简单介绍一些常用的选项。更多更详细的信息参阅参考文档的内...
在Linux中,您可以使用GCC(GNU编译器集合)命令来对C和C++代码进行优化 选择优化级别:GCC提供了不同的优化级别,从-O0(无优化)到-O3(最高优化级别)。每个级别都会启用一组特定的优化选项。例如,-O1启用基本优化,而-O2还包括更多的优化。根据您的需求选择合适的优化级别。 使用优化选项:要对C或C++代码进行优化,请...