GCC学习资料
上一篇 /
下一篇 2008-12-19 11:23:05
/ 个人分类:linux
51Testing软件测试网jVh|juJ,?学习GCC的时候,在网上搜集的部分入门的资料.希望对您有所帮助!
r$k*{ lQ5G.Ii051Testing软件测试网]j4rP0]}@X j
一、GCC简介51Testing软件测试网fS/M$x]
t7a f
.gEQ im0通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进制代码。GCC是Linux平台下最常用的编译程序,它是Linux平台编译器的事实标准。同时,在Linux平台下的嵌入式开发领域,GCC也是用得最普遍的一种编译器。GCC之所以被广泛采用,是因为它能支持各种不同的目标体系结构。例如,它既支持基于宿主的开发(简单讲就是要为某平台编译程序,就在该平台上编译),也支持交叉编译(即在A平台上编译的程序是供平台B使用的)。目前,GCC支持的体系结构有四十余种,常见的有X86系列、Arm、PowerPC等。同时,GCC还能运行在不同的操作系统上,如Linux、Solaris、Windows等。
\jc-s2ON'k0
QedC| f5b051Testing软件测试网.|3\d$v1\wu4v
除了上面讲的之外,GCC除了支持C语言外,还支持多种其他语言,例如C++、Ada、Java、Objective-C、FORTRAN、Pascal等。
},npc|d(K051Testing软件测试网n2NWB]%Q
51Testing软件测试网#[d,Eb$f q~
本系列文章中,我们不仅介绍GCC的基本功能,还涉及到一些诸如优化之类的高级功能。另外,我们还考察GCC的一些映像操作工具,如size和objcopy等,这将在后续的文章中加以介绍。
a
_.k7Lrf1F051Testing软件测试网KRY'MFn;yh4J
51Testing软件测试网x"G)M
o:aP8A/?,zH
二、程序的编译过程
]H dZR_W!Y051Testing软件测试网^#N^'me(i
u(]
51Testing软件测试网4Nf5IG5yh.e
对于GUN编译器来说,程序的编译要经历预处理、编译、汇编、连接四个阶段,如下图所示:51Testing软件测试网r-b+B~A-^Jp
:a%V;K9{,IW1k!YtB051Testing软件测试网P&q)kTQ-v
"H V(i$h
R8j)?xt ko0
#C:u5d`K&[?c051Testing软件测试网d5d%w g`*_S]
从功能上分,预处理、编译、汇编是三个不同的阶段,但GCC的实际操作上,它可以把这三个步骤合并为一个步骤来执行。下面我们以C语言为例来谈一下不同阶段的输入和输出情况。
)@^SU
[%bwYE0