没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论




















任务 4.1 编译程序-GCC
GCC(GNU Compiler Collection,GNU 编译器套装),是一套由 BGNU 开发的编程语言
编译器。GCC 是非常优秀的跨平台编译器集合,支持 x86、ARM、MIPS 和 PowerPC 等多种
目标平台。GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C 语
言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、
Java,以及 Ada 与其他语言。
GCC 目前由世界各地不同的数个程序员小组维护,是移植到中央处理器架构以及操作
系统最多的编译器。由于 GCC 已成为 GNU 系统的官方编译器(包括 GNU/Linux 家族),它
也成为编译与创建其他操作系统的主要编译器,包括 BSD 家族、Mac OS X、NeXTSTEP 与
BeOS。GCC 通常是跨平台软件的编译器首选。有别于一般局限于特定系统与运行环境的编
译器,GCC 在所有平台上都使用同一个前端处理程序,产生一样的中介码,因此此中介码
在各个其他平台上使用 GCC 编译,有很大的机会可得到正确无误的输出程序。
开放、自由和灵活是 Linux 的魅力所在,而这一点在 GCC 上的体现就是程序员通过它
能够更好地控制整个编译过程。在使用 GCC 编译程序时,编译过程可以被细分为四个阶段:
预处理(Pre-Processing)
编译(Compiling)
汇编(Assembling)
链接(Linking)
Linux 程序员可以根据自己的需要让 GCC 在编译的任何阶段结束,以便检查或使用编
译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量
和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC 也提供了灵
活而强大的代码优化功能,利用它可以生成执 行效率更高的代码。GCC 提供了 30 多条警
告信息和三个警告级别,使用它们有助于增强程序的稳定性和可移植性。此外,GCC 还对
标准的 C 和 C++语言进行了大量的扩展,提高程序的执行效率,有助于编译器进行代码优
化,能够减轻编程的工作量。
在 Linux 下建立嵌入式交叉编译环境要用到一些列的工具链(tool-chain),主要有比如
GNU Binutils、Gcc、Glibc、Gdb 等,它们都属于 GNU 的工具集。其中 GNU Binutils 是一套
用来构造和使用二进制所需的工具集。建立嵌入式交叉编译环境,Binutils 工具包是必不可
少的,而且 Binutils 与 GNU 的 C 编译器 gcc 是紧密相集成的,没有 Binutils,gcc 也不能正
常工作的。Binutils 的官方下载地址是:ftp://ftp.gnu.org/gnu/binutils/,在这里可以下载到不同
版本的 Binutils 工具包。目前比较新的版本是 Bintuils-2.16.1。GNU Binutils 工具集里主要有
以下一些列的部件。
1) GNU 的汇编器(as)
作为 GNU Binutils 工具集中最重要的工具之一。as 工具主要用来将汇编语言编写的源
程序转换成二进制形式的目标代码。Linux 平台的标准汇编器是 GAS,它是 Gnu GCC 编译
器所依赖的后台汇编工具,通常包含在 Binutils 软件包中。
2) GNU 的链接器(ld)
同 as 一样,ld 也是 GNU Binutils 工具集中重要的工具,Linux 使用 ld 作为标准的链接
程序,由汇编器产生的目标代码是不能直接在计算机上运行的,它必须经过链接器的处理才
能生成可执行代码,链接是创建一个可执行程序的最后一个步骤,ld 可以将多个目标文件链
接成为可执行程序,同时指定了程序在运行时是如何执行的。
3) 将地址转换成文件名或行号对(add2line ),以便调试程序
资源评论


念广隶
- 粉丝: 7
- 资源: 6万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
