搭建交叉編譯環境

2021-05-28 12:30:58 字數 2176 閱讀 4219

4.1、

搭建交叉編譯環境

4.1.1、概述

交叉編譯,就是用執行在一種計算機環境中的編譯程式,去編譯出在另外一種環境下執行的**。具有這種能力的編譯器就叫交叉編譯器。換而言之,就是在乙個平台上生成另乙個平台上的可執行**。這裡所指的平台實際上包含了軟

/硬體兩個方面的概念:作業系統

(operating system)和體系結構(architecture)。

同樣是linux系統,在

不同體系結構的硬體平台上的可執行**是不同的,譬如

arm和x86,因為它們的指令系統不一樣,所以可執行**也就有差異

。同樣是

arm平台,由於作業系統的實現不一樣,可執行**也會不一樣。

一般情況下,嵌入式

linux系統

的資源緊張,無法安裝執行所需的編譯器,甚至是目標平台都還沒有建立,連作業系統都沒有,根本談不上執行編譯器。常用的做法是在一台

pc上搭建交叉編譯環境,即配置安裝交叉編譯工具鏈(針對

目標平台的

編譯器gcc

、二進位制工具binutils、標準c庫glibc和linux核心標頭檔案等等),在該環境下編譯出嵌入式

linux系統所需的作業系統系統、應用程式等,然後再上傳到目標平台上。

4.1.2、安裝

要搭建交叉編譯環境,就需製作乙個交叉編譯工具鏈,一般有三種途徑:

² 手工製作,一步步編譯

這種方式的難度比較大。製作交叉編譯工具鏈所需要的原始碼包存在版本匹配的問題,如果編譯過程中出現了問題,去修正這些問題比較困難。另外還要為製作環境安裝好所需的工具軟體。

² 通過指令碼編譯

用crosstool生成的指令碼來製作,比手動編譯難度會小一些,但是需要修改指令碼,要熟悉shell指令碼知識。

² 直接獲取

有了交叉編譯工具鏈後,就可以安裝了。先把得到的壓縮包解壓到指定的目錄,然後再配置系統環境。在ubuntu下安裝配置arm平台的交叉編譯環境的步驟如下:

² 」。或是在網路上搜尋下,找到合適的交叉編譯工具鏈。

² 解壓

以root賬戶登入系統,把arm-linux-gcc-4.3.2.tgz拷貝到根目錄下,然後解壓,執行命令如下:

# tar -zxvf arm-linux-gcc-4.3.2.tgz

² 配置系統環境變數

交叉編譯工具鏈安裝好了以後,最好先

配置系統環境變數

,把其所在的路徑加入進path,這樣就能在任何目錄下方便的使用。通常,要修改環境變數,可以修改以下三個指令碼中的乙個:

全域性(公有)配置

指令碼/etc/profile,所有使用者登入時都要執行;shell初始化指令碼/etc/bash.bashrc,也是所有使用者登入時執行的;root賬戶目錄下的shell配置指令碼/root/.bashrc(換成其他賬戶的話,就在其工作目錄下去找),僅僅是root賬號登入時執行的。推薦修改/etc/bash.bashrc檔案,方法如下:

v 開啟檔案

# vi /etc/bash.bashrc

v 修改檔案

export path=$path:/usr/local/arm/4.3.2/bin

v 設定生效

如果要使新的環境變數立即生效,而不用重啟電腦,則執行如下命令:

# source /etc/bash.bashrc

v 驗證配置

可以使用如下指令檢查環境變數是否配置成功:

# echo $path

修改其他的指令碼檔案方法類似,只是注意其影響是否覆蓋到登入賬戶。

² 測試

環境變數配置好了,

檢視下arm-linux-gcc的版本資訊,在終端中輸入

:# arm-linux-gcc -v

再編寫乙個測試程式test.c來測試

下交叉編譯環境

是否搭建成功,

內容如下:

#include

int main(void)

編譯test.c,並用file檢視可執行程式的格式資訊:

# arm-linux-gcc -o test test.c

# file test

test: elf 32-bit lsb executable, arm, version 1 (sysv), dynamically linked (uses shared libs), for gnu/linux 2.6.14, not stripped

**:

搭建交叉編譯環境

2008.03.12 今天計畫 完成交叉環境的搭建 今天進展 今天心得 1.vi命令,熟悉h,j,k,l命令,其中重要的一點g是將游標跳到文件末尾,此命令對於在一大型文件中繼續編寫很有用。l是將游標移到螢幕最後行。2.修改arm elf tools 20040427.sh 由於直接執行 sh arm...

搭建交叉編譯環境

2.解壓交叉編譯工具到指定的目錄下 usr local arm tar xvf arm linux gcc 4.4.3 20100728.tar.gz c usr local arm 3.配置系統環境變數 etc profile 所有使用者都可用 etc bash.bashrc 所有使用者都可用 r...

搭建交叉編譯環境

4.1 搭建交叉編譯環境 4.1.1 概述 交叉編譯,就是用執行在一種計算機環境中的編譯程式,去編譯出在另外一種環境下執行的 具有這種能力的編譯器就叫交叉編譯器。換而言之,就是在乙個平台上生成另乙個平台上的可執行 這裡所指的平台實際上包含了軟 硬體兩個方面的概念 作業系統 operating sys...