Linux开发工具:gcc

链接程序把所有对象文件中的机器码组合在一起,并解析它们之间的交叉引用。

它还集成了对象模块所使用的库函数的代码。

这是链接程序的一种简化表示,因为这里假定在可执行模块中,模块之间的所有链接都是静态建立的。

实际上有些链接是动态的,即这些链接是在程序执行时建立的。

链接就是链接器ld将各个目标文件组装在一起,解决符号依赖,库依赖关系,并生成可执行文件。

链接的命令。

ld –static crt1.o crti.o crtbeginT.o hello.o –start-group –lgcc –lgcc_eh –lc-end-group crtend.o


在使用gcc作为编译器时:

O1:优化编译会尝试减少代码体积和代码运行时间,但是并不会执行会花大量时间的优化操作

O2:进一步优化 GCC执行几乎所有支持的操作但不包括空间和速度之间权衡的优化。

   不执行循环展开和函数“内联”优化操作;与O1相比O2将会话费更多的编译时间当然也会生成性能更好的代码。

O3:更进一步优化。O3打开O2指定的所有优化操作并且打开:

1、-finline-functions

2、-funswitch-ioops

3、-fgcse-after-reload

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值