2.2 构建 ARM Linux 交叉编译工具链
构建交叉编译器的第一个步骤就是确定目标平台。在 GNU系统中,每个目标
平台都有一个明确的格式, 这些信息用于在构建过程中识别要使用的不同工具的
正确版本。因此,当在一个特定目标机下运行 GCC时,GCC便在目录路径中查找
包含该目标规范的应用程序路径。 GNU的目标规范格式为 CPU-PLATFORM-OS。例
如 x86/i386 目标机名为 i686-pc-linux-gnu 。本章的目的是讲述建立基于 ARM
平台的交叉工具链,所以目标平台名为 arm-linux-gnu 。
通常构建交叉工具链有 3 种方法。
方法一 分步编译和安装交叉编译工具链所需要的库和源代码, 最终生成交
叉编译工具链。该方法相对比较困难,适合想深入学习构建交叉工具链的读者。
如果只是想使用交叉工具链,建议使用方法二或方法三构建交叉工具链。
方法二 通过 Crosstool 脚本工具来实现一次编译生成交叉编译工具链, 该
方法相对于方法一要简单许多, 并且出错的机会也非常少, 建议大多数情况下使
用该方法构建交叉编译工具链。
方法三 直接通过网上( ftp.arm.kernel.org.uk )下载已经制作好的交叉
编译工具链。 该方法的优点不用多说, 当然是简单省事, 但与此同时该方法有一
定的弊端就是局限性太大, 因为毕竟是别人构建好的, 也就是固定的没有灵活性,
所以构建所用的库以及编译器的版本也许并不适合你要编译的程序, 同时也许会
在使用时出现许多莫名的错误,建议读者慎用此方法。
为了让读者真正的学习交叉编译工具链的构建, 下面将重点详细地介绍前两
种构建 ARM Linux 交叉编译工具链的方法。
2.2.1 分步构建交叉编译链
分步构建,顾名思义就是一步一步地建立交叉编译链,不同于 2.2.2 节中讲
述的 Crosstool 脚本工具一次编译生成的方法, 该方法适合那些希望深入学习了
解构建交叉编译工具链的读者。 该方法相对来说难度较大, 通常情况下困难重重,
犹如唐僧西天取经, 不过本文会尽可能详细地介绍构建的每一个步骤, 读者完全
可以根据本节的内容自己独立实践, 构建自己的交叉工具链。 该过程所需的时间
较长,希望读者有较强的耐心和毅力去学习和实践它, 通过实践可以使读者更加
清楚交叉编译器的构建过程以及各个工具包的作用。该方法所需资源如表 2.1
所示。
表 2.1 所需资源
安装包
下载地址
安装包
下载地址
linux-2.6.10.tar.
gz
ftp.kernel.
org
glibc-2.3.2.tar.gz ftp.gnu.
org
binutils-2.15.tar
.bz2
ftp.gnu.org glibc-linuxthreads-2.3.2.
tar.gz
ftp.gnu.
org
gcc-3.3.6.tar.gz ftp.gnu.org
通过相关站点下载以上资源后,就可以开始建立交叉编译工具链了。
1.建立工作目录