1、下载arm-linux-gcc-3.4.1.tar.bz2
http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2
2、将源码包拷贝到根目录“/”下
执行#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 -C / 解压后确认目录为:“/usr/local/arm/3.4.1/”
3、添加环境变量到系统中
打开“/etc/bashrc”,并在 bashrc 文件的最后一行添加:“export PATH=/usr/local/arm/3.4.1/bin:$PATH”,保存,此时环境变量已经添入系统。
4、只要在终端中输入“arm-linux-gcc -v”,会出现以下信息的话代表交叉编译工具已经安装成功。
[windstyle@localhost ~]$ arm-linux-gcc -v
Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.1
5、关于不同的编译版本的
最常用的编译版本是arm-linux-gcc-3.4.1 和 arm-linux-3.3.2 的,现在的嵌入式开发基本上用的是这些,3.4.1的用于编译2.6的内核,而3.3.2的常用于编译busybox,和bootloader(u-boot),编译的版本配合不好的话就会出错,所以要选择好编译版本,如果这个版本不行的话,可以试试其他的版本。在uclinux上用的多的就是 arm-elf-tools-20030314。
如果系统中又装了3.4.1和3.3.2的版本的话,可以在 .bashrc 中通过设置PATH来指定默认的版本为GCC3.4.1,然后再打开一个新的终端就可以用了,如果需要使用3.3.2的话,可以用具体的路径指定 (/usr/local/arm/3.3.2/bin/arm-linux-)。
在~/.bashrc最后加入: export PATH=$PATH:/usr/local/arm/3.4.1/bin
如果编译u-boot或者busybox的时候指定3.3.2的版本:
CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- 3.4.1的就直接用arm-linux-就可以了。
关于arm-linux- toolchain,arm-elf-toochain的区别,主要是编译过程中所用的C库的不同,arm-linux用的是glibc,arm-elf 用的是newlibc,ulibc等,具体的可以去网上搜集,一般编译arm+linux的用arm-linux-,而编译uclinux则用arm- elf-XX。