搭建交叉編譯環境

2021-08-26 06:13:28 字數 2176 閱讀 2907

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...

搭建交叉編譯環境

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

搭建交叉編譯環境

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...