《《嵌入式Linux系统开发标准教程》5_交叉开发工具链》.pdfVIP

  • 6
  • 0
  • 约1.98万字
  • 约 16页
  • 2015-10-05 发布于河南
  • 举报

《《嵌入式Linux系统开发标准教程》5_交叉开发工具链》.pdf

《《嵌入式Linux系统开发标准教程》5_交叉开发工具链》.pdf

入式学院—华清远见旗下品牌: 《嵌入式Linux 系统开发标准教程》 《 入式Linux 系统开发标准教程》——第5 章、交叉开发工具链 第5 章 交叉开发工具链 本章目标 本章介绍编译生成GNU 工具链的基本步骤。通过学习本章 内容可以使读者理解交叉工具链的来源,并且体会到生成和维 护工具链的复杂性。 工具软件的来源 制作交叉编译器 制作交叉调试器 入式学院—华清远见旗下品牌: 《 入式Linux 系统开发标准教程》——第5 章、交叉开发工具链 5.1 工具链软件 Linux 软件从一开始就使用GNU 的工具链。这些GNU 的工具和软件都是开放源 码的,可以免费下载源码编译。但是并不能以为任何一个版本 来都能用,各种软件 包存在版本匹配问题,并且不同版本都有一些补丁。 一套完善的工具链对于 入式Linux 开发非常重要。发行版的Linux 都会包含一 整套工具链。工具链的维护和升级是Linux 公司(特别是嵌入式Linux 公司)非常重 要的一项工作。 5.1.1 相关软件工程 GNU 的工具链源码包可以从GNU 网站 或者镜像下载。这个 站点有很多GNU 软件,其中Linux 使用的工具链软件是:BINTUTILS、GCC、GLIBC 和GDB 。 通过这些软件包,可以生成gcc、g++ 、ar、as、ld 等编译链接工具,还可以生成 glibc 库和gdb 调试器。这些编程工具的使用在第3 章有详细说明。对于交叉开发的工 具链来说,在文件名字上加了一个前缀,用来区别本地的工具链。例如:arm-linux-gcc, 除了体系结构相关的编译选项以外,它的使用方法与Linux 主机上的GCC 相同。所 以Linux 编程技术对于嵌入式Linux 同样适用。 交叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码。 在X86 的Linux 主机上,除了编译生成ARM 、MIPS 、PowerPC 等体系结构的程序, 还可以为X86 不同版本的Linux 开发程序。例如:为了维护不同版本的X86 目标机, 可以在Red Hat Linux 9 的主机上通过交叉编译的方式开发。 下面介绍一下这些软件工程的一些特点。 BINUTILS 是二进 程序处理工具,包括连接器、汇编器等目标程序处理的工具。 GCC (GNU Compiler Collection )是编译器,不但能够支持C/C++语言的编译, 而且能够支持FORTRAN JAVA ADA 等编程语言。不过,一般不需要配置其他语言的 选项,也可以避免编译其他语言功能而导致的错误。对于C/C++语言的完整支持,需 要支持glibc 库。 GLIBC 是应用程序编程的函数库软件包,可以编译生成静态库和共享库。完整的 GCC 需要支持glibc 。 GDB 是调试工具,可以读取可执行程序中的符号表,对程序进行源码调试。 5.1.2 软件版本的匹配 1 Crosstool Crosstool 软件实际上是一套脚本,用于编译和测试大多数体系结构的各种 GCC 和glibc 的版本组合。当然,前提是glibc 能够支持这些体系结构,它还为工具链源码 包提供了补丁。从Crosstool 网站上,可以下载到这些编译脚本、补丁和文档。 Crosstool 包含了体系结构和gcc、glibc 各种组合配置的最小补丁。Crosstool 测试 支持范围如表5.1 所示。 入式学院—华清远见旗下品牌: 《 入式Linux 系统开发标准教程》——第5 章、交叉开发工具链 表5.1 crosst

文档评论(0)

1亿VIP精品文档

相关文档