什么是交叉编译:在计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,如在keil软件编译,在单片机上运行。这就是交叉编译。

一.安装标准的C开发环境,由于Linux安装默认是不安装的,所以需要先安装一下(如果已经安装好的话,就可以免去这一步了,我的就已经是安装好的了):
  #sudo apt-get install gcc g++ libgcc1 libg++ make gdb

打开共享目录/home/lishuai,将压缩文件arm-linux-gcc-4.3.2.tgz复制到/home/lishuai下

二.解压软件包arm-linux-gcc-4.3.2.tgz.

[root@localhost lishuai]#tar xzvf arm-linux-gcc4.3.2.tgz
    1.目录4.3.2就是该交叉编译器的目录.从arm-linux-gcc-4.3.2.tgz解压信息来看,该软件包需要解压在usr/local/arm下,而实际却解压到了共享目录/home/lishuai下                              
    2.进入目录usr/local/内,并没有找到arm文件夹,所以需要新建一arm文件夹,再将目录4.3.2移动到新建目录usr/local/arm下.其中,4.3.2/bin就是arm-linux-gcc的可执行文件.
    [root@localhost local]#mv  /home/lishuai/usr/local/arm/4.3.2  ./          3.进入目录/usr/local/arm/4.3.2/bin,可以看到不同类型的编译器.但在ARM下经常用到是arm-linux-gcc.其实它也是一个gcc编译器,与gcc使用方法一致,不过该编译器是针对arm体系结构、Linux操作系统的编译器.利用该编译器就可以编译出运行在ARM上的Linux操作系统下的应用程序.
   4.进入目录/usr/local/arm/4.3.2/arm-none-linux-gnueabi.其中,lib目录下存放的是库文件,用户编写的应用程序在运行时就依赖于这些库文件.
   5.此时还不能编译源码,系统一般会提示找不到命令arm-linux-gcc.这是环境变量在作祟.所以必须修改环境变量PATH.
    [root@localhost lishuai]#vi /etc/profile                               在"export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC"这一行的下面添加环境变量,
    输入:export PATH=/usr/local/arm/4.3.2/bin:$PATH
    指定变量PATH为交叉编译器的路径,目的是告诉操作系统可以到目录/usr/local/arm/4.3.2/bin下查找可执行文件      修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一)
     方法一:修改/etc/bash.bashrc文件
                 #vim /etc/bash.bashrc
                 在最后加上:
                export PATH=$PATH:/usr/local/arm/3.4.1/bin
                export PATH
     方法二:修改/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
                  注:(这只能在当前的终端下才是有效的!)
  6.[root@localhost lishuai#:source /etc/profile     //使已修改的配置文件/etc/profile生效
立即使新的环境变量生效,不用重启电脑:
     对应方法一:#source /root/.bashrc
    对应方法二:# source /etc/profile    检查是否将路径加入到PATH:
     7.查看arm-linux-gcc编译器的版本
    [root@localhost lishuai]#arm-linux-gcc -v
 
 
8.编译Hello World程序,测试交叉工具链
   写下下面的Hello World程序,保存为hello.c
    #include <stdio.h>
     int main()
     {
     printf("Hello World!/n");
        return 0;
     }
   
     执行下面的命令:
     # arm-linux-gcc -o hello hello.c-------------------------------------------------------------
修改环境变量这一步修改/etc/profile文件
在path中添加arm-linux-gcc路径
if [ "`id -u`" -eq 0 ]; then
   PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/arm/3.4.1/bin"
 else
   PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
 fi