GCC和G++编译优化的一些问题

27 篇文章 1 订阅

GCC G++ 编译优化选项问题

 (由于编译的选项很多,我们实际在用的时候只是其中很少的一部分,因此,这里只列举几个具有代表性的选项说一下。说是几个,其实也是比较全了)


一、编译优化选项

1、-O0

       -O1

      -O2

      -O3

编译时使用选项-O可以告诉GCC同时减小代码的长度和执行时间,其效果等价于-O1。在这一级别上能够进行的优化类型虽然取决于目标处理器,但一般都会包括线程跳转(Thread Jump)和延迟退栈(Deferred Stack Pops)两种优化。选项-O2告诉GCC除了完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等。选项-O3则除了完成所有-O2级别的优化之外,还包括循环展开和其它一些与处理器特性相关的优化工作。通常来说,数字越大优化的等级越高,同时也就意味着程序的运行速度越快。

注意O3少用,有的时候  -O3 会出来一些意想不到的问题

编译的优化有限,最好从源代码上优化

例如:   gcc -Wall -O0  test.c -o testo0

               gcc -Wall -O3  test.c -o testo3

 

2static

此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行.

 

3-traditional

试图让编译器支持传统的C语言特性

 

4-Wall  warning all

显示所有的Warning

 

5-g

  只是编译器,在编译的时候,产生调试信息。

 

6-ansi

  关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一

asm inline typeof关键字,以及UNIX,vax等预处理宏,

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值