- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
致力于培养专业的嵌入式软件人才!
3. GCC 编译器介绍
GCC 是GNU 项目的编译器组件之一,也是GNU 最具有代表性的作品。在GCC 设计之初仅仅作为一个C 语言的编译器,可是经过十
多年的发展,GCC 已经不仅仅能支持C 语言;它现在还支持Ada 语言、C++语言、Java 语言、Objective C 语言,Pascal 语言、COBOL
语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单是 GNU C Compiler 的意思,而是 GNU Compiler
Collection 也即是GNU 编译器家族的意思了,目前已经成为Linux 下最重要的编译工具之一。
GCC 是一个交叉平台的编译器,目前支持几乎所有主流CPU 处理器平台,它可以完成从C、C++、Objective C 等源文件向运行在
特定cpu 硬件上的目标代码的转换,GCC 不仅功能非常强大,结构也异常灵活,便携性(protable)与跨平台支持(cross-plantform.
support)特性是GCC 的显着优点,目前编译器所能支持的源程序的格式如下表所示。
GCC 所支持的源程序格式
后缀格式 说明
.c C 语言程序
.a 由目标文件构成的档案文件
.C、cc、cxx C++源程序
.h 源程序所包含的头文件
.i 经过预处理的C 程序
.ii 经过预处理的C++程序
.m Objective-C 源程序
致力于培养专业的嵌入式软件人才!
.o 编译后的目标文件
.s 汇编语言源程序
.S 经过预编译的汇编程序
GCC 是一组编译工具的总称,其软件包里包含众多的工具,按其类型,主要有以下的分类。
C 编译器cc,cc1,cc1 plus,gcc
C++编译器c++,cc1 plus,g++
源代码预处理程序cpp,cpp0
库文件libgcc.a, libgcc_eh.a,libgcc_s.so,libiberty.a,libstdc++.[a,so],libsupc++.a
用GCC 编译程序生成可执行文件有时候看起来似乎仅通过编译一步就完成了,但事实上,使用GCC 编译工具由C 语言源程序生成可
执行文件的过程并不单单是一个编译的过程,而要经过下面的几个过程。
预处理(Pre-Processing)
编译(Compiling)
汇编(Assembling )
链接(Linking)
在实际编译的时候,GCC 首先调用cpp 命令进行预处理,主要实现对源代码编译前的玉处理,比如将源代码中指定的头文件包含进来。
接着调用cc1 命令进行编译,作为整个编译过程的一个中间步骤,该过程会将源代码翻译生成汇编代码。汇编过程是针对汇编语言的步骤,
致力于培养专业的嵌入式软件人才!
调用as 命令进行工作,生成扩展名为.o 的目标文件,当所有的目标文件都生成之后,GCC 就调用连接器ld 来完成最后的关键性工作——
链接。
GCC 编译选项解析
GCC 是Linux 下基于命令行的C 语言编译器,其基本的使用语法如下。
gcc [option |filename]…
文档评论(0)