gcc
上一篇 /
下一篇 2009-03-25 16:36:21
/ 个人分类:Linux
:J,a1Hb&A[0 Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
%]
o,em#q0B i1Es(H0 gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。
51Testing软件测试网"i&g,Q9x$^ gcc的执行过程的四个步骤:51Testing软件测试网%`oh;K`6e;B
51Testing软件测试网'D UX9lY7r tN$I"b (一)首先调用cpp进行预处理(也称预编译,Preprocessing),在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析;
S,H#b;Z1Y)Il#} ]b0NV}9oS:shC0 (二)接着调用cc1进行编译(Compilation),这个阶段根据输入文件生成以.o为后缀的目标文件;
5F$U}wY051Testing软件测试网3n v/^syLG!rPl (三)汇编(Assembly)过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件;
/s3f#BY5Q#l0vf6f kV`
M e@9X4f-p(`0 (四)当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接(Linking)。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。
ZC#q`*h3Go0}0j8ux;]S:C,n X,J5GIkZ0
@Ib^-qp:]a8E5x0
收藏
举报
TAG: