1. 程式人生 > >64位Ubuntu 16.04搭建嵌入式交叉編譯環境arm-linux-gcc過程圖解

64位Ubuntu 16.04搭建嵌入式交叉編譯環境arm-linux-gcc過程圖解

64位Ubuntu 16.04搭建嵌入式交叉編譯環境arm-linux-gcc過程圖解,開發裸機環境之前需要先搭建其開發環境,畢竟工欲善其事必先利其器嘛。 

安裝步驟

1、準備工具安裝目錄

將壓縮包arm-Linux-gcc-4.4.3.tar.gz存放在一個目錄下,這個目錄就是你等會解壓縮的目錄,以後這個目錄就不能隨便刪掉了,我的存放路徑是/home/aldrich/arm,如下圖,記住這個路徑,等會還會用到。

 

  1. .tar.gz 和.tgz
  2. 解壓:tar zxvf FileName.tar.gz
  3. 壓縮:tar zcvf FileName.tar.gz DirName

2、安裝軟體

使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz將software資料夾下的arm-linux-gcc-4.3.2.tgz解壓縮安裝到當前目錄。通過下圖可以看到解壓成功了,並且解壓後的檔案存放在了

/home/aldrich/arm/arm-linux-gcc-4.3.2

資料夾下,如下圖所示,這個存放路徑可得記住,如下圖

 

3、配置系統環境變數

配置環境前先坐下普及:

Ubuntu不同目錄下profile與bashrc的區別

/etc/profile  此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行,並從/etc/profile.d目錄的配置檔案中搜集shell的設定。

/etc/bash.bashrc  為每一個執行bash shell的使用者執行此檔案,當bash shell被開啟時,該檔案被讀取。

~/.bash_profile  每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次,預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。

~/.bashrc  該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取。

~/.bash_logout  當每次退出系統(退出bash shell)時,執行該檔案。

另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是"父子"關係。

~/.bash_profile  是互動式、login 方式進入 bash 執行的。

~/.bashrc  是互動式 non-login 方式進入 bash 執行的。

通常二者設定大致相同,所以通常前者會呼叫後者。

接下來配置系統環境變數,把交叉編譯工具鏈的路徑新增到環境變數PATH中去,這樣就可以在任何目錄下使用這些工具。記下上一步中的安裝路徑,使用命令:vim  /home/aldrich/.bashrc 編輯.bashrc檔案,新增環境變數。

在該檔案中最後一行新增:

export PATH=$PATH:/home/aldrich/arm/arm-linux-gcc-4.3.2/bin

這個路徑就是那個bin目錄所在的路徑,可能你的不一樣,按照你實際的目錄填就可以了,如下圖

 

編寫完儲存就好了

4、使環境變數生效

使用命令:source  /home/aldrich/.bashrc 使環境變數生效

5、檢查環境變數是否設定成功

在終端上輸入命令 arm-linux 再按Tab鍵,可以看到下圖,說明環境變數設定成功了

 

6、安裝32位庫相容包

輸入命令後,出現下面的錯誤提示資訊:

/home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-linux-gcc:
line 3:
/home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-none-linux-gnueabi-gcc:No such file or directory

 

說是出現這種問題的原因是由於Ubuntu16.04用的是64位的,按以前的解決方法就是使用命令:

sudo apt-get install ia32-libs 裝一些32位的庫

 

出現上述介面是因為Ubuntu16.04版本已不支援ia32-libs的軟體包,而是使用了lib32ncurses5、lib32z1軟體包做為替代,所以在Ubuntu16.04版本當中應該安裝執行:

sudo apt-get install lib32ncurses5 lib32z1

待安裝完32位的庫之後,再使用命令:arm-linux-gcc -v,這一次就成功了,如下圖

 

8、交叉編譯工具驗證

編譯一個hello.c檔案

#include<stdio.h>
int main()
{
    printf("hello world!\n");
}

使用命令:arm-linux-gcc hello.c -o hello 看是否編譯成功

 

可見成功生成了二進位制檔案,至此,交叉編譯工具就配置完成了。