gcc

上一篇 / 下一篇  2009-03-25 16:36:21 / 个人分类:Linux

:J,a1Hb&A [0    Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

%] o,em#q0Bi1Es(H0
    gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。
51Testing软件测试网"i&g,Q9x$^

    gcc的执行过程的四个步骤:51Testing软件测试网%`oh;K`6e;B

51Testing软件测试网'DUX9lY7r tN$I"b

    (一)首先调用cpp进行预处理(也称预编译,Preprocessing),在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析;

S,H#b;Z1Y)Il#}]b0

NV}9oS:shC0    (二)接着调用cc1进行编译(Compilation),这个阶段根据输入文件生成以.o为后缀的目标文件;

5F$U}wY051Testing软件测试网3n v/^syLG!rPl

    (三)汇编(Assembly)过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件;

/s3f#B Y5Q#l0

vf6fkV` Me@9X4f-p(`0    (四)当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接(Linking)。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。

ZC#q`*h3Go0}0

j8ux;]S:C,n X,J5GIkZ0   

@Ib^-qp:]a8E5x0

TAG:

 

评分:0

我来说两句

日历

« 2024-04-13  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 5561
  • 日志数: 10
  • 建立时间: 2008-03-05
  • 更新时间: 2009-10-22

RSS订阅

Open Toolbar