CentOS 5.5下arm-linux-gcc交叉编译环境的搭建

技术老炮儿 2011-10-29

最常用的编译版本是arm-linux-gcc-3.4.1 和 arm-linux-3.3.2 的,其中3.4.1的用于编译2.6的内核,而3.3.2的常用于编译busybox和bootloader。如果搭配编译的版本配合不好就会出错,所以要选择好编译版本。在uclinux上用的多的就是 arm-elf-tools-20030314。

下面开始设置过程:

   1)下载arm-linux-gcc-3.4.1并解压,会得到一个包(arm包),放到/usr/local/下(其实自己想放哪里都行,自己愿意了)。

   2)设置环境变量。把交叉编译器的路径加入到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    注:(这只能在当前的终端下才是有效的!)

        在设置完了后,就要是环境变量生效,当然可以重启使其生效,也可以在终端输入如下:

            对应方法一:#source /root/.bashrc
            对应方法二:# source /etc/profile          用echo $PATH  看看有没?

    3)打开一个中断,输入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

    4)写个hello试试

#include <stdio.h>
    int main()
    {
       printf("Hello World!\n");
       return 0;
    }
    执行下面的命令:
    #arm-linux-gcc -o hello hello.c

      然后再输入#file hello,会看到如下信息:

      hello: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped

      说明生成了一个可以运行在Arm体系结构上的应用程序。经过以上步骤,arm-linux-gcc开发环境就搭建好了.
   5)在编译其他时有可能会用到3.3.2,可以用具体的路径指定 (/usr/local/arm/3.3.2/bin/arm-linux-)。

----------------------------------------

修改环境变量这一步修改/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

再source /etc/profile就可以刷新环境变量

其他方式试过好像不行........

相关推荐