在Linux平台下,要为开发板编译内核,文件系统,图形界面,bootloader,还有其他一些应用程序,均需要交叉编译工具链。这里介绍下在Ubuntu 9.04操作系统下叉编译工具链的建立过程。
操作环境:
【操作系统】:Ubuntu 9.0.4(主机系统为winXP,用虚拟机VMware安装的Ubuntu 9.0.4,内核版本为2.6.28)
【交叉编译器】:arm-linux-gcc-4.3.2
操作步骤:
1.下载arm-linux-gcc-4.3.2.tgz到任意的目录下,进入这个文件夹
$ sudo tar xvzf arm-linux-gcc-4.3.2.tgz –C /
或者在root用户权限下:
# tar xvzf arm-linux-gcc-4.3.2.tgz –C /
注意:C 后面有个空格,并且C是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.3.2 目录。
2. 修改环境变量,把交叉编译器的路径加入到PATH,为了可以方便使用arm-linux-gcc编译器系统, 把arm-linux工具链目录加入到环境变量PATH中。
方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)
$sudo gedit /etc/bash.bashrc
在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin
方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):
$sudo gedit /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/arm/4.3.2/bin
方法三:修改/etc/environment文件
$sudo gedit /etc/environment
原文件应为PATH="/usr/local/sbin:/usr/local/bin:/usr /sbin:/usr/bin:/sbin:/bin: /usr/games“将其改为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"保存退出即可
方法四:修改/root/.bashrc把编译器路径加入系统环境变量
$sudo gedit /root/.bashrc
在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin
设置环境变量后,立即使新的环境变量生效,不用重启电脑:
对应方法一:$ source /root/.bashrc
对应方法二:$ source /etc/profile
方法三:立即生效
方法四:重启或注销一下(不是winXP)
3. 在命令行输入arm-linux-gcc –v,会出现如下信息,这说明交叉编译环境已经成功安装。
4.编译Hello World程序,测试交叉工具链
写下下面的Hello World程序,保存为hello.c
#include“stdio.h”
#include“stdlib.h”
int main()
{
printf("Hello World!/n");
return 0;
}
执行下面的命令:
$ arm-linux-gcc -o hello hello.c
源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了! 接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。
至此交叉编译环境已经建立好了。