歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> CentOS 5.5下arm-linux-gcc交叉編譯環境的搭建

CentOS 5.5下arm-linux-gcc交叉編譯環境的搭建

日期:2017/3/1 11:09:19   编辑:Linux編程
最常用的編譯版本是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。

下載地址:http://www.linuxidc.com/Linux/2011-10/46187.htm

下面開始設置過程:

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就可以刷新環境變量

其他方式試過好像不行........

Copyright © Linux教程網 All Rights Reserved