第 4 章 交叉编译环境的建立
4.1 什么是交叉编译环境
在桌面应用程序我们见得比较多的编译环境通常是编译一个程序运行在同类型的平
台上。例如我们在 Windows XP 操作系统下用 C++写了一个程序,然后用 VISUAL C++将
之编译成可执行程序,然后在 windows XP 上运行。其中,编译环境,也就是编译器运
行环境与生成的可执行程序运行的环境是基本相同的。
交叉编译器的编译环境与生成的可执行程序的运行环境是不一样的。例如,编译
器是运行在 Linux 2.6,Intel X86 的计算机上,而生成的可执行程序是运行于 ARM9 的
S3C2410 处理器上,这二者的指令集都不一样。显然,采用传统编译器编译的程序是不
能满足需要的。
4.2 GCC 交叉编译工具链
交叉编译技术是在一个异构平台环境下编译目标平台程序,它是跨架构编译,所
以需要交叉编译工具链。 交叉编译工具链是国际开源组织 开发的工具链,
它是开源的。
每一个软件在编译过程中都要经过这些处理才能变成可执行代码:预编译、高级
语言编译、汇编、连接及重定位。这一流程里面用到的每个工具和相关库的集合,就
称为工具链。 的交叉编译工具链主要由 、 和 个部分组成。有
时出于规模大小考虑,可以适当减小 库的大小,可以用其他 库代替 ,例如:
、 和 。
目前市场上有各种各样的交叉编译工具链,一般来说商业公司提供的工具链,都
不会提供工具链的相关源码,灵活不足,并且它们一般都与整套体统捆绑销售使用,
成本较高。为了解决这个缺陷和不足,市场上有很多公司使用国际开源组织 开发
的工具链作为他们的产品开发工具。下面章节为大家展现一个完整的 工具链构建
过程。
4.3 重建交叉编译器
下面介绍如何在 上分步构建 交叉编译器 版本是
,该方法适合那些希望深入学习和研究交叉编译工具链的读者。本文会详细介
绍构建的每一步个步骤,读者完全可以根据本届的内容自己独立实践,构建自己的交
叉工具链。该过程所需的时间较长,希望读者有较强的耐心和毅力去学习和实践它。
该方法所需的资源如下表 所示:
表 资源表
源代码版本 下载地址
! "#$%%"#&%%%!