《嵌入式Linux系统开发标准教程》5 交叉开发工具链.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:16 大小:384KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

免费试读已结束,剩余 6 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式学院—华清远见旗下品牌:www.embedu.org《嵌入式Linux系统开发标准教程》《嵌入式Linux系统开发标准教程》——第5章、交叉开发工具链第5章交叉开发工具链本章目标本章介绍编译生成GNU工具链的基本步骤。通过学习本章内容可以使读者理解交叉工具链的来源,并且体会到生成和维护工具链的复杂性。工具软件的来源制作交叉编译器制作交叉调试器嵌入式学院—华清远见旗下品牌:www.embedu.org《嵌入式Linux系统开发标准教程》——第5章、交叉开发工具链5.1工具链软件Linux软件从一开始就使用GNU的工具链。这些GNU的工具和软件都是开放源码的,可以免费下载源码编译。但是并不能以为任何一个版本拿来都能用,各种软件包存在版本匹配问题,并且不同版本都有一些补丁。一套完善的工具链对于嵌入式Linux开发非常重要。发行版的Linux都会包含一整套工具链。工具链的维护和升级是Linux公司(特别是嵌入式Linux公司)非常重要的一项工作。5.1.1相关软件工程GNU的工具链源码包可以从GNU网站http://www.gnu.org或者镜像下载。这个站点有很多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目标机,可以在RedHatLinux9的主机上通过交叉编译的方式开发。下面介绍一下这些软件工程的一些特点。BINUTILS是二进制程序处理工具,包括连接器、汇编器等目标程序处理的工具。GCC(GNUCompilerCollection)是编译器,不但能够支持C/C++语言的编译,而且能够支持FORTRANJAVAADA等编程语言。不过,一般不需要配置其他语言的选项,也可以避免编译其他语言功能而导致的错误。对于C/C++语言的完整支持,需要支持glibc库。GLIBC是应用程序编程的函数库软件包,可以编译生成静态库和共享库。完整的GCC需要支持glibc。GDB是调试工具,可以读取可执行程序中的符号表,对程序进行源码调试。5.1.2软件版本的匹配1.CrosstoolCrosstool软件实际上是一套脚本,用于编译和测试大多数体系结构的各种GCC和glibc的版本组合。当然,前提是glibc能够支持这些体系结构,它还为工具链源码包提供了补丁。从Crosstool网站上,可以下载到这些编译脚本、补丁和文档。Crosstool包含了体系结构和gcc、glibc各种组合配置的最小补丁。Crosstool测试支持范围如表5.1所示。嵌入式学院—华清远见旗下品牌:www.embedu.org《嵌入式Linux系统开发标准教程》——第5章、交叉开发工具链表5.1crosstool测试支持范围处理器体系结构alpha,arm,i686,ia64,mips,powerpc,powerpc64,sh4,sparc,sparc64,s390,x86_64gcc版本gcc-2.95.3...gcc-4.0.0glibc版本glibc-2.1.3...glibc-2.3.5crosstool的新版本会不断扩大测试范围。不妨下载crosstool-0.38版本,看看软件中大堆的脚本和补丁。$wget-chttp://www.kegel.com/crosstool/crosstool-0.38.tar.gz$tar–zxvfcrosstool-0.38.tar.gz$cdcrosstool-0.38顶层目录下有很多*.sh脚本和*.dat配置文件,这是对于各种体系结构和工具版本进行编译测试的脚本。例如:all.sh、demo-arm.sh、arm.dat、gcc-4.1-20050709-glibc-2.3.2-hdrs-2.6.11.2.dat等。