1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下。 


 2.解压 arm-linux-gcc-3.4.1.tar.bz2 

   #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 

   解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下 

   # cd usr/local/ 

   #cp -rv arm /usr/local/ 

   现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了 

 3.  修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一) 

   方法一:修改/etc/bash.bashrc文件 

      #vim /etc/bash.bashrc 


             在最后加上: 


    export PATH=$PATH:/usr/local/arm/3.4.1/bin 


 export PATH 


     (如果不能编辑,先修改相关文件的权限使用chmod命令。) 


 方法二:修改/etc/profile文件: 

 # vim /etc/profile 


 增加路径设置,在末尾添加如下,保存/etc/profile文件: 

 export PATH=$PATH:/usr/local/arm/3.4.1/bin 

   方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin 

   注:(这只能在当前的终端下才是有效的!) 

 4. 立即使新的环境变量生效,不用重启电脑: 

  对应方法一:#source /root/.bashrc 

  对应方法二:# source /etc/profile 

 5. 检查是否将路径加入到PATH: 

    # echo $PATH 

   显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。 

  6.测试是否安装成功 

   # arm-linux-gcc -v 

 上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息: 

  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 



 7.编译Hello World程序,测试交叉工具链 

    写下下面的Hello World程序,保存为 hello.c 

 #include <stdio.h> 

 int main() 

 { 

 printf("Hello World!\n"); 

 return 0; 

 } 


    执行下面的命令: 

 # arm-linux-gcc -o hello hello.c 

     源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了! 


 接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。 



ubuntu 10.04 建立交叉编译环境 arm-linux-gcc-4.3.2 


 建立交叉编译环境arm-linux-gcc-4.3.2。 


 1. 将友善科技光盘的arm-linux-gcc-4.3.2.tgz复制到任意路径下; 



 2. 确保安装了标准C开发环境,一句命令搞定:sudo apt-get install build-essential libncurses5-dev; 



 3.在终端进入arm-linux-gcc-4.3.2.tgz存放目录,再sudo tar -zxvf arm-linux-gcc-4.3.2.tgz -C /(注意大写C字母后留一个空格,这样会自动解压缩到/usr/local/4.3.2目录下) 


 修改环境变量,使交叉编译环境生效。我是执行如下命令: 

 yagerya@yagerya-desktop:~$ echo $PATH 

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

 yagerya@yagerya-desktop:~$ 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"保存退出即可.然后注销重新登录就可使环境变量生效了。 



 我不推荐大家这样做,我试过了在编译内核时无论执行sudo -s后,再执行arm-linux-gcc -v也没有出现环境变量的信息,故cd /opt/FriendlyARM/mini2440后,无论make zImage或sudo make zImage 都出现无法再到arm-linux的情况! 



 所以我推荐大家这样做: 

 yagerya@yagerya-desktop:~$ vim ~/.profile 

 在这个文件最后添加上自己的环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin 

 然后在终端执行source ~/.profile ,即可立即生效。 



 yagerya@yagerya-desktop:~$ arm-linux-gcc -v 

 Using built-in specs. 

 Target: arm-none-linux-gnueabi 

 Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin 

 Thread model: posix 

 gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) 

 yagerya@yagerya-desktop:~$ 



 4.编译内核,切到root 帐户编译kernel: sudo passwd root 后,设置root密码,后su -切换到root, 然后参考友善之臂的user manuals 一步步make zImage开始编译。