gcc/g++ -O 优化选项说明

转载 2013年12月04日 17:20:32
查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册
-O设置一共有五种:-O0、-O1、-O2、-O3和-Os。

除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用。

让我们来逐一考察各个优化等级:

-O0:这个等级(字母“O”后面跟个零)关闭所有优化选项,也是CFLAGS或CXXFLAGS中没有设置-O等级时的默认等级。这样就不会优化代码,这通常不是我们想要的。
-O1:这是最基本的优化等级。编译器会在不花费太多编译时间的同时试图生成更快更小的代码。这些优化是非常基础的,但一般这些任务肯定能顺利完成。
-O2:-O1的进阶。这是推荐的优化等级,除非你有特殊的需求。-O2会比-O1启用多一些标记。设置了-O2后,编译器会试图提高代码性能而不会增大体积和大量占用的编译时间。
-O3:这是最高最危险的优化等级。用这个选项会延长编译代码的时间,并且在使用gcc4.x的系统里不应全局启用。自从3.x版本以来gcc的行为已经有了极大地改变。在3.x,-O3生成的代码也只是比-O2快一点点而已,而gcc4.x中还未必更快。用-O3来编译所有的软件包将产生更大体积更耗内存的二进制文件,大大增加编译失败的机会或不可预知的程序行为(包括错误)。这样做将得不偿失,记住过犹不及。在gcc 4.x.中使用-O3是不推荐的。
-Os:这个等级用来优化代码尺寸。其中启用了-O2中不会增加磁盘空间占用的代码生成选项。这对于磁盘空间极其紧张或者CPU缓存较小的机器非常有用。但也可能产生些许问题,因此软件树中的大部分ebuild都过滤掉这个等级的优化。使用-Os是不推荐的。

gcc/g++编译优化

1.  介绍 什么是CFLAGS和CXXFLAGS 人们用环境变量CFLAGS和CXXFLAGS来告诉GNU编译器集合(GNU Compiler Collection),即gcc,在编译源代码时使...
  • AttaGain
  • AttaGain
  • 2014年01月22日 10:20
  • 11576

Linux 环境下使用g++编译C++

单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include int main(in...
  • hnyzwtf
  • hnyzwtf
  • 2015年03月27日 12:06
  • 35335

gcc 优化选项 -O1 -O2 -O3 -Os 优先级,-fomit-frame-pointer .

gcc 优化选项 -O1 -O2 -O3 -Os 优先级,-fomit-frame-pointer .
  • ztguang
  • ztguang
  • 2016年11月08日 16:24
  • 356

gcc优化等级-O0 -O1 -O2 -Os -O3

gcc原文网址:https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Optimize-Options.html#Optimize-Options -O-O1...
  • zgfpig
  • zgfpig
  • 2016年02月17日 14:38
  • 2639

GCC编译器优化选项分析及具体优化了什么

问题在使用gcc作为编译器。在设定编译条件时,在debug模式下生成的程序正常,但是在release模式下往往会出现很多种预料之外的结果,尤其在嵌入式环境中,程序在板子上运行的时候,问题就愈发明显。 ...
  • gatieme
  • gatieme
  • 2015年10月04日 19:37
  • 5198

关于这样 gcc -O3 和-O2 -Os 的说法对吗

在 x86 系列cpu采用 -O3 并不是一种好的选择。因为 x86 系列cpu缺乏足够寄存器,-O3 会导致代码变慢。 另外,-O3 包含了 -finline-functions,这会使目标代...
  • flyonok
  • flyonok
  • 2013年03月12日 23:08
  • 1491

gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

Gcc 编译优化简介 gcc 提供了为了满足用户不同程度的的优化需要,提供了近百种优化选项,用来对{编译时间,目标文件长度,执行效率}这个三维模型进行不同的取舍和平衡。优化的方法不一而足,总体上将有以...
  • qq_31108501
  • qq_31108501
  • 2016年07月06日 20:39
  • 5091

【转】g++编译优化详解

来源g++编译优化指南
  • nickwong_
  • nickwong_
  • 2014年08月22日 22:00
  • 2171

gcc/g++编译优化选项(一)

在进行C++编译时,有时候因为没有进行编译优化而导致程序运行效率慢,因此在这里介绍了gcc/g++编译优化的选项...
  • hit_090420216
  • hit_090420216
  • 2015年04月06日 10:49
  • 5126

G++ 编译结果优化方式!!!!!

1,C++里面STL自带的vector存取效率不高,在可能的情况下用指针数组代替会大幅提高性能。 2,C++中对象的传递,尽可能使用引用,避免无意义的对象拷贝过程。 3,编译的时候加上 -O3, ...
  • jbddygb
  • jbddygb
  • 2017年01月23日 13:47
  • 652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gcc/g++ -O 优化选项说明
举报原因:
原因补充:

(最多只允许输入30个字)