一起talk GCC吧(第一回:GCC介绍)
来源:互联网 发布:rayfile for mac 编辑:程序博客网 时间:2024/05/19 00:41
各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :GCC。闲话休提,言归正转。让我们
一起talk GCC吧!
看官们,我们常说的GCC是一个绰号,它真正的名字是:GNU Compiler Collection.中文叫作GNU编译
套件。因为这个绰号的名声太大了,所以大家都这么称呼它。GCC生于1987年,也是一个典型的80后。
它的父亲为美国人Richard Stallman。不过它没娘,可怜的孩子。
作为一款优秀的编译器,GCC可以支持常用的各种语言,比如C,C++等,还有现在流行的Objective-c。
而且它已经成为各种Linux发行版中默认的程序编译器。比如Ubuntun,ReadHat,BSD等。此外,GCC
也支持各种处理器架构,比如常见的X86架构,用于服务器的SPARC架构,以及用于嵌入式领域的ARM架
构。这么强大的GCC是开源的,因此你可以自由使用它。目前GCC还在不断的发展和升级。
看官们,我们介绍一下GCC的编译功能。GCC编译C或者C++程序时,是分阶段进行的。主要有4个阶段,
分别是:预处理,编译,汇编,链接。不过每个阶段都可以单独控制,如果觉得一步一步的操作麻烦,
也可以把各个阶段一气呵成,直接产生编译结果。当然了,如果想查看各个阶段的结果,使用GCC就方
便很多。下面我们分别介绍一下各个阶段的功能:
- 预处理阶段:
在该阶段GCC会叫一个名叫CPP的预处理器来完成该阶段的工作。该阶段主要做两件事情:处理预
编译语句和文件包含。预编译语句包含宏和条件编译,比如#define,#ifdef...#endif.文件包含就是
使用#include包含进来的各种头文件。该阶段会产生预处理后的文件,文件后缀为.i或者.ii。当然
了,后缀只是为了方便人们区分文件类型,对Linux来说有没有后缀都一样。
- 编译阶段:
在该阶段GCC会叫一个名叫CCL的编译器来完成该阶段的工作。该阶段主要工作是会产生汇编语言源
文件,汇编语言源文件的后缀为.s。其实该阶段也是一个比较复杂的过程,该阶段会进行词法分析,
语法分析等工作,这个属于编译原理方面的内容,咱们就不多说了。感兴趣的看官们,可以自己研究
一下关于编译方面的知识。当然了,如果我有时间的话,也会和大家介绍编译方面的知识。
- 汇编阶段:
在该阶段GCC会叫一个名叫AS的汇编器来完成该阶段的工作,该阶段的主要工作是对上一阶段中产生
汇编语言文件进行汇编,汇编完成时会生成目标文件,目标文件的后缀为.o。当然了,不同的处理器
架构,目标文件的内容也不同。
- 链接阶段:
在该阶段GCC会叫一个名叫LD的链接器来完成该阶段的工作。该阶段主要工作是把汇编生成的目标文
件和库文件进行链接,最后生成可执行的目标文件,目标文件后缀为.o。
看官们,GCC可以把这4个阶段一气呵成,直接生成可执行的目标文件。也可以使用不同的选项来控制每个
阶段的进行,以便检查各个阶段的产物。
看官们,关于GCC的内容,今天咱们就说这些。欲知后事如何,且听下回分解!
- 一起talk GCC吧(第一回:GCC介绍)
- 一起talk GDB吧(第一回:GDB介绍)
- 一起talk GCC吧(第二回:GCC使用)
- 一起talk Vim吧(第一回:Vim出山)
- 一起Talk Android吧(第一回:概述)
- 一起talk GCC吧(第三回:GCC编译)
- 一起talk GCC吧(第四回:GCC警告)
- 一起talk GCC吧(第五回:GCC优化)
- 一起talk GCC吧(第六回:GCC调试)
- 一起talk C栗子吧(第一回:C语言实例概述)
- 一起talk C栗子吧(第一百五十一回:C语言实例--socket通信地址)
- 一起talk C栗子吧(第一百九十一回:C语言实例--文件定位四 )
- 一起talk Vim吧(第十一回:Vim分身刀法)
- 一起Talk Android吧(第十一回:Java中的继承)
- 一起talk C栗子吧(第一百三十一回:C语言实例--C程序内存布局三)
- 一起talk C栗子吧(第一百四十一回:C语言实例--文件操作:基于文件指针一)
- 一起talk C栗子吧(第一百六十一回:C语言实例--套接字通信模型二)
- 一起talk C栗子吧(第一百七十一回:C语言实例--关闭终端中的回显功能二)
- win8/wp8学习资料
- JavaScript之事件总结
- VS2013将新建的源码文件的编码格式自动设置成UTF8
- 第十六周项目 有些数的阶乘不算了
- hash
- 一起talk GCC吧(第一回:GCC介绍)
- iPhone NetworkReachable
- 九度oj 题目1104:整除问题
- windows编程笔记
- 3D dungeon
- unicode和utf-8和assci之间的关系
- 超宽带UWB高精度定位技术
- 建立UUID函数
- 餐饮美食数据表