搭建嵌入式交叉編譯環境

搭建嵌入式交叉編譯環境

本文中所使用的Ubuntu 14.04.3,交叉編譯器的安裝一般需要涉及到多種軟件,但這個過程一般比較複雜,現在很多嵌入式社區提供了測試通過的交叉編譯器,本文中採用的是友善之臂的arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz


1. 解壓文件

tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /

注意: C後面有個空格,並且C是大寫的(必須),它是英文單詞“Change”的第一個字母,在此是改變目錄的意思。執行該命令,將把arm-linux-gcc 安裝到/opt/FriendlyARM/toolschain/4.5.1 目錄。

另外自己在安裝過程出現如下所示的報錯:

gzip: stdin: unexpected end of file
tar: 歸檔文件中異常的 EOF
tar: 歸檔文件中異常的 EOF
tar: Error is not recoverable: exiting now

通過在網上搜索,原因一方面可能是解壓格式是否選對或者是下載的壓縮包破壞,自己的解壓命令輸入是無誤的,壓縮包也是光盤解壓,連續從找了好幾個版本的都是報這個錯誤,同學複製過來的也有問題,最初以爲是自己的Ubuntu系統問題,但是對其他的壓縮包就可以正常解壓,後來思考可能是因爲通過VMwareTools傳輸文件到虛擬機的過程中出現的文件損壞,果斷換了WinSCP傳送,最後果然可以正常解壓了。

2. 建立目錄複製文件

sudo mkdir /usr/local/arm
sudo cp -r /opt/FriendlyARM/toolschain/4.5.1/ /usr/local/arm

3. 配置環境變量

目前我們只是安裝了交叉編譯器,但使用時只能在當前目錄下,因此需要配置環境變量,保證在其他路徑下也能找到交叉編譯器。

  • 方法一:修改/etc/bash.bashrc文件(此文件只對當前用戶適用)
    sudo gedit /etc/bash.bashrc
    在最後加上 export PATH=$PATH:/usr/local/arm/4.5.1/bin (路徑)(注意等號那邊不要有空格)

  • 方法二:修改/etc/profile文件(此文件屬於系統級別的環境變量,設置在裏面的東西對所有用戶適用,本文采用的是這種方法)
    sudo gedit /etc/profile
    增加路徑設置,在末尾添加如下:
    export PATH=$PATH:/usr/local/arm/4.5.1/bin

  • 方法三:修改/etc/environment文件
    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.5.1/bin”

4. 註冊環境變量

爲了使之前配置的環境變量生效,一種方法是註銷系統重新進入,另外還可以採用其他方式註冊環境變量,採用source指令

source /etc/bash.bashrc
source /etc/profile

方法三立即生效,不用註冊。

5. 檢測是否安裝成功。

echo $PATH
顯示如下信息,說明環境變量註冊成功。

/usr/java/java-8-sun/bin:/usr/java/java-8-sun/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin:/opt/Sublime Text 2:/usr/local/arm/4.5.1/bin/

arm-linux-gcc

Using built-in specs.
COLLECT_GCC=arm-linux-gcc
COLLECT_LTO_WRAPPER=/usr/local/arm/4.5.1/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /work/toolchain/build/src/gcc-4.5.1/configure –build=i686-build_pc-linux-gnu –host=i686-build_pc-linux-gnu –target=arm-none-linux-gnueabi –prefix=/opt/FriendlyARM/toolschain/4.5.1 –with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root –enable-languages=c,c++ –disable-multilib –with-cpu=arm1176jzf-s –with-tune=arm1176jzf-s –with-fpu=vfp –with-float=softfp –with-pkgversion=ctng-1.8.1-FA –with-bugurl=http://www.arm9.net/ –disable-sjlj-exceptions –enable-__cxa_atexit –disable-libmudflap –with-host-libstdcxx=’-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm’ –with-gmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-mpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-cloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-mpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-libelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static –enable-threads=posix –with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root –disable-nls –enable-symvers=gnu –enable-c99 –enable-long-long
Thread model: posix
gcc version 4.5.1 (ctng-1.8.1-FA)

輸出如上結果,至此,交叉編譯器安裝成功。

發佈了36 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章