嵌入式Linux系统裁剪与编译
1 构建交叉编译环境
1.1 交叉编译原理简介
嵌入式开发一般都是使用交叉编译环境。交叉编译就是在一台计算机上编译软件,其生成的软件在另一台不同类型处理器的机器上运行。因为嵌入式硬件性能一般无法和家用计算机相比,无法构建开发和编译环境。所以我们只能“借”家用计算机来对目标平台的软件进行开发和编译。此时称家用计算机为宿主机,而目标平台机器为目标机。
每一个软件。在编译过程中。都要经过一系列处理,才能从源代码变成可执行目标代码。这一系列处理包括,预编译、高级语言编译、汇编、连接及其重定位。这一套流程里面用到的工具和库的组合,就称为工具链。Linux 上常用的开发工具GCC,它包含预编译器cpp,c语言编译器gcc,汇编器as 和连接器ld。这个工具链中,还有用于处理二进制包的工具包binutils,整个工具链应该是GCC+binutils+Glibc。
为了编译在目标机上运行嵌入式Linux内核,首先我们必须编译目标平台的编译链,而这个链是存放在主机上,故名为交叉编译链。
1.2 下载构建交叉编译链的工具及其补丁
Binutils-2.19.1 Busybox-1.13.0 GCC-4.3.3 GMP-4.2.4
MPFR-2.4.1 uClibc-0.9.30.1
制作交叉编译链
定义环境变量
定义MYSYS变量为嵌入式系统主目录变量、MYSYS_TARGET变量为目标平