LINUX之交叉編譯環境搭建

2021-08-04 16:56:40 字數 3075 閱讀 2633

安裝步驟

1、準備工具安裝目錄

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

.tar.gz 和.tgz解壓:tar zxvf filename.tar.gz壓縮: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位庫相容包

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

說是出現這種問題的原因是由於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檔案

#includeint main()

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

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

Linux之交叉編譯

交叉編譯 在乙個平台上生成另乙個平台的可執行 編譯 是在乙個平台上生成該平台的可執行程式 為什麼要交叉編譯 有的平台上不允許或者不能夠安裝我們所需要的編譯器比如c51。因為目的平台上的資源匱乏,無法執行我們所需要的編譯器。樹莓派是不是就不需要交叉編譯?錯。也要,樹莓派有時又是因為目的平台還沒建立,連...

linux 交叉編譯環境的搭建

arm linux gcc 3.4.1.tgz arm linux gcc 4.3.3.tgz 通過 和 windows 的共享資料夾將其考到linux中 我將其放在 opt arm gcc 下 開啟超級終端 輸入 cd opt arm gcc 回車 超級終端 tar zvxf arm linux ...

android底層開發之交叉編譯環境

x86架構的cpu採用的是複雜指令集 complex instruction set computer,cics 而arm架構的cpu使用的是精簡指令集 reduced instruction set computer,risc 由於這兩種架構的cpu使用了不同的指令集,因此在x86架構上開發可執行...