180 likes | 306 Vues
第 5 章 交叉开发工具链. 本章介绍编译生成 GNU 工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。. 本章目标. 工具软件的来源 制作交叉编译器 制作交叉调试器. 5.1 工具链软件. Linux 软件从一开始就使用 GNU 的工具链。这些 GNU 的工具和软件都是开放源码的,可以免费下载源码编译。. 5.1.1 相关软件工程.
E N D
本章介绍编译生成GNU工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。本章介绍编译生成GNU工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。 www.farsight.com.cn
本章目标 • 工具软件的来源 • 制作交叉编译器 • 制作交叉调试器
5.1 工具链软件 • Linux软件从一开始就使用GNU的工具链。这些GNU的工具和软件都是开放源码的,可以免费下载源码编译。
5.1.1 相关软件工程 • GNU的工具链源码包可以从GNU网站http://www.gnu.org或者镜像下载。这个站点有很多GNU软件,其中Linux使用的工具链软件是:BINTUTILS、GCC、GLIBC和GDB。 • 通过这些软件包,可以生成gcc、g++、ar、as、ld等编译链接工具,还可以生成glibc库和gdb调试器。 • 交叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码。
5.1.2 软件版本的匹配 • 1.Crosstool • Crosstool软件实际上是一套脚本,用于编译和测试大多数体系结构的各种GCC和glibc的版本组合。
2.LFS(Linux From Scratch) • 顾名思义,LFS就是要指导人们从头开始制作Linux系统。它提供详细的操作步骤,从源代码开始,一步一步地编译出自己的Linux系统 • LFS最大的优点是可以按照自己的喜好和需要定制自己的系统。 • LFS第2个优点是可以从更大的程度上控制开发者自己的系统,而不依赖于别人打造的工具。 • LFS第3个优点是你可以建立一个很小的Linux系统。 • LFS第4个优点是系统安全性。
5.1.3 工具链制作流程 • ① 做好准备工作。下载工具源码包和补丁,准备内核头文件,创建工作目录等。 • ② 编译binutils。这个软件包的编译一般很顺利,不会出现什么问题。 • ③ 编译辅助编译器。这一步使用简化配置,编译通常也很顺利。 • ④ 编译glibc库。这里要使用交叉编译工具链,例如:arm-linux-gcc等。 • ⑤ 编译生成完整的GCC编译器。重新配置GCC功能,使其支持C、C++等语言。
5.2 制作交叉编译器 • 1. 准备编译环境 • 选择GCC-3.3.2的版本首先准备编译环境。 • 创建一个工作目录~/crosstool,把下载的源码包放到~/crosstool/source目录下。 • 接下来下载相关软件包。 • 不要忘了找找工具链的补丁。最好下载最新版本的crosstool软件包,从中可以找到一些有用的东西。 • 还要准备内核头文件目录。 • 准备好工作区 • 编译的过程可能会出错,导致编译过程无法继续进行。详细分析出错信息,有助于解决源码中的语法错误。
2. 编译binutils • 3. 编译GCC的辅助编译器 • 4. 编译生成glibc库 • 5. 编译生成完整的GCC编译器
5.3 制作交叉调试器 • 1. 编译交叉调试器 • (1)解压源码包 • (2)配置 • (3)编译 • (4)安装 • 2. 编译gdbserver
Q&A www.farsight.com.cn
谢谢! www.farsight.com.cn