嵌入式linux系统开发概述之三----工具链(Toolchain)
2010-05-08 14:25
381 查看
3 工具链(Toolchain)
设置工具链在主机机器上创建一个用于编译将在目标上运行的内核和应用程序的构建环境—--这是因为目标硬件可能没有与主机兼容的二进制执行级别。
工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。 这些组件包括:
Binutils — 用于操作二进制文件的实用程序集合。它们包括诸如 ar、as、objdump、objcopy这样的实用程序;
Gcc — GNU C编译器;
Glibc — 所有用户应用程序都将链接到的C库。避免使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译。
构建工具链建立了一个交叉编译器环境。本地编译器编译与本机同类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器的指令。从头设置交叉编译器工具链可不是一项简单的任务:它包括下载源代码、修补补丁、配置、编译、设置头文件、安装以及很多很多的操作。另外,这样一个彻底的构建过程对内存和硬盘的需求是巨大的。如果没有足够的内存和硬盘空间,那么在构建阶段由于相关性、配置或头文件设置等问题会突然冒出许多问题。
因此能够从因特网上获得已预编译的二进制文件是一件好事(但不太好的一点是,目前它们大多数只限于基于ARM的系统,但迟早会改变的)。一些比较流行的已预编译的工具链包括那些来自Compaq(Familiar Linux )、LART(LART Linux和Embedian(基于Debian但与它无关)的工具链 — 所有这些工具链都用于基于ARM的平台。Intel的PXA255芯片就是基于ARM设计的。
设置工具链在主机机器上创建一个用于编译将在目标上运行的内核和应用程序的构建环境—--这是因为目标硬件可能没有与主机兼容的二进制执行级别。
工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。 这些组件包括:
Binutils — 用于操作二进制文件的实用程序集合。它们包括诸如 ar、as、objdump、objcopy这样的实用程序;
Gcc — GNU C编译器;
Glibc — 所有用户应用程序都将链接到的C库。避免使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译。
构建工具链建立了一个交叉编译器环境。本地编译器编译与本机同类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器的指令。从头设置交叉编译器工具链可不是一项简单的任务:它包括下载源代码、修补补丁、配置、编译、设置头文件、安装以及很多很多的操作。另外,这样一个彻底的构建过程对内存和硬盘的需求是巨大的。如果没有足够的内存和硬盘空间,那么在构建阶段由于相关性、配置或头文件设置等问题会突然冒出许多问题。
因此能够从因特网上获得已预编译的二进制文件是一件好事(但不太好的一点是,目前它们大多数只限于基于ARM的系统,但迟早会改变的)。一些比较流行的已预编译的工具链包括那些来自Compaq(Familiar Linux )、LART(LART Linux和Embedian(基于Debian但与它无关)的工具链 — 所有这些工具链都用于基于ARM的平台。Intel的PXA255芯片就是基于ARM设计的。
相关文章推荐
- 嵌入式linux系统开发概述之二----内核(Kernel)
- 嵌入式linux系统开发概述
- 构建嵌入式Linux系统-开发工具
- 2017070506嵌入式开发系统概述和开发工具的使用
- 嵌入式linux系统开发概述之四----设备驱动(Drivers)
- 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来
- 嵌入式linux系统开发概述之六----图形用户界面(GUI)
- 嵌入式linux系统开发概述之五----文件系统(FileSystem)
- 刚在网上发现的在Linux下利用开源工具开发嵌入式系统的文章
- ARM-Linux嵌入式系统开发基础
- Linux嵌入式系统设计开发过程
- 嵌入式开发第二日(man 手册、linux基本命令、vim编辑器、代码编译过程、编译工具、基本数据类型、控制流)
- 【嵌入式Linux C编程】2018.3.7 Linux C语言开发工具
- 嵌入式系统开发工具及RTOS平台
- u-boot 分析- [嵌入式Linux系统开发技术详解-基于ARM]2
- 嵌入式Linux系统下I2C设备驱动程序的开发
- 嵌入式Linux开发——YAFFS文件系统详解
- 嵌入式linux系统移植开发视频教程
- 嵌入式设备上的 Linux 系统开发(2)(转)
- 【ARM-Linux开发】ARM嵌入式设备Linux系统启动步骤和方式