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