gcc编译器

gcc编译器的四个过程:

     预处理:头文件展开,对源程序中的伪指令和特殊符号进行处理(宏定义指令,条件编译指令,头文件包含指令)(.i文件)

                    gcc -E hello.c -o hello.i

    编译:将源程序转化为计算机可以执行的二进制代码(.s文件)

                   gcc -S hello.i -o hello.s

    汇编:将汇编语言翻译成机器语言(.o文件)

                  gcc -c hello.s -o hello.o

    链接:将目标文件和各库函数进行连接,得到一个可执行的二进制文件。

                gcc hello.s -o hello


gcc编译器的三级优化:-o1,-o2,-o3

     -o1:编译会尝试减少代码体积和代码运行时间。但是并不执行会花费大量时间的优化操作。在该模式下将打开一些优化选项.

     -o2:进一步优化.GCC执行几乎所有支持的操作但不包括空间和速度之间权衡的优化。与-O1比较该优化-O2将会花费更多的编译时间当然也会生成性能更好的代码。-O2优化等级下,并不执行循环展开和函数“内联”优化操作。 

     -o3:更进一步优化。-O3打开-O2指定的所有优化操作并且打开:-finline-functions     -funswitch-loops     -fgcse-after-reload


编译器静态编译:-static

    在支持动态连接(dynamic linking)的系统上,阻止连接共享库.即禁止调用动态库,该选项在其他系统上无效.完全编译出的东西比较大。

    把所有都需要的函数库都集成进编译出来的程序上,这个程序就可以不依赖外部的函数库运行了。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值