1 / 17

第 5 章 交叉开发工具链

第 5 章 交叉开发工具链. 本章介绍编译生成 GNU 工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。. 本章目标. 工具软件的来源 制作交叉编译器 制作交叉调试器. 5.1 工具链软件. Linux 软件从一开始就使用 GNU 的工具链。这些 GNU 的工具和软件都是开放源码的,可以免费下载源码编译。. 5.1.1 相关软件工程.

Download Presentation

第 5 章 交叉开发工具链

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第5章 交叉开发工具链

  2. 本章介绍编译生成GNU工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。本章介绍编译生成GNU工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。 www.farsight.com.cn

  3. 本章目标 • 工具软件的来源 • 制作交叉编译器 • 制作交叉调试器

  4. 5.1 工具链软件 • Linux软件从一开始就使用GNU的工具链。这些GNU的工具和软件都是开放源码的,可以免费下载源码编译。

  5. 5.1.1 相关软件工程 • GNU的工具链源码包可以从GNU网站http://www.gnu.org或者镜像下载。这个站点有很多GNU软件,其中Linux使用的工具链软件是:BINTUTILS、GCC、GLIBC和GDB。 • 通过这些软件包,可以生成gcc、g++、ar、as、ld等编译链接工具,还可以生成glibc库和gdb调试器。 • 交叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码。

  6. 5.1.2 软件版本的匹配 • 1.Crosstool • Crosstool软件实际上是一套脚本,用于编译和测试大多数体系结构的各种GCC和glibc的版本组合。

  7. 2.LFS(Linux From Scratch) • 顾名思义,LFS就是要指导人们从头开始制作Linux系统。它提供详细的操作步骤,从源代码开始,一步一步地编译出自己的Linux系统 • LFS最大的优点是可以按照自己的喜好和需要定制自己的系统。 • LFS第2个优点是可以从更大的程度上控制开发者自己的系统,而不依赖于别人打造的工具。 • LFS第3个优点是你可以建立一个很小的Linux系统。 • LFS第4个优点是系统安全性。

  8. 5.1.3 工具链制作流程 • ① 做好准备工作。下载工具源码包和补丁,准备内核头文件,创建工作目录等。 • ② 编译binutils。这个软件包的编译一般很顺利,不会出现什么问题。 • ③ 编译辅助编译器。这一步使用简化配置,编译通常也很顺利。 • ④ 编译glibc库。这里要使用交叉编译工具链,例如:arm-linux-gcc等。 • ⑤ 编译生成完整的GCC编译器。重新配置GCC功能,使其支持C、C++等语言。

  9. 5.2 制作交叉编译器 • 1. 准备编译环境 • 选择GCC-3.3.2的版本首先准备编译环境。 • 创建一个工作目录~/crosstool,把下载的源码包放到~/crosstool/source目录下。 • 接下来下载相关软件包。 • 不要忘了找找工具链的补丁。最好下载最新版本的crosstool软件包,从中可以找到一些有用的东西。 • 还要准备内核头文件目录。 • 准备好工作区 • 编译的过程可能会出错,导致编译过程无法继续进行。详细分析出错信息,有助于解决源码中的语法错误。

  10. 2. 编译binutils • 3. 编译GCC的辅助编译器 • 4. 编译生成glibc库 • 5. 编译生成完整的GCC编译器

  11. 5.3 制作交叉调试器 • 1. 编译交叉调试器 • (1)解压源码包 • (2)配置 • (3)编译 • (4)安装 • 2. 编译gdbserver

  12. Q&A www.farsight.com.cn

  13. 谢谢! www.farsight.com.cn

More Related