ubuntu下編譯交叉編譯工具鏈

迷霧綠洲發表於2014-06-19

交叉編譯工具鏈在arm開發中出很重要的位置,開發之前肯定要先有編譯器 聯結器 彙編器等基礎的編譯工具。arm體系是一個很複雜的體系,裡面的指令有數個版本不同的體系level還有很多自己的特點 ,這就要求編譯器也要出幾個版本的針對不同的應用。

當然網路上存在很多的編譯器的資源,但是作為一個嵌入式開發人員還是要會自己構建出來一個工具鏈的,做到只能說不想做,不能說做不到,不然真的遇到特殊應用的需要無法作出編譯器專案就直接掛了。

整個工具鏈的編譯過程如果採用純手工的step by step  真的需要幾天時間,並且對於意志力的要求會很高,因為每一步都會產生很多的問題。對於整個檔案結構,系統環境,需要關聯的各種庫要求很複雜,尤其是很多庫的版本組合是很難確定的。

這裡我們用一個先用一個簡單的方法區進行,就是利用一個存在的強大指令碼crosstool-ng  來編譯出工具鏈

這個指令碼可以幫助我們下載需要的檔案,做目錄的準備等工作。

下載地址是在 http://crosstool-ng.org/  這裡想一個ftp站 ,我用的事最新的1.19.0版本

雖然crosstool-ng 可以幫我們自動的下載關聯檔案,但是對於系統的環境還是我們自己需要搞定的,有幾個是系統必須有的
這裡我們就直接系統聯網直接更新了

#sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs gawk 

這些要安裝的工具中  gcj實力面比較複雜的  ,需要手動下載,這裡就自己在網路下嗖嗖。

安裝步驟

1.到home檔案路徑下   就是家目錄,不是HOME 目錄

2.建立真個編譯執行的工作目錄

#mkdir crosstool

3.拷貝下載指令碼壓縮檔案到工作目錄 並解壓

#cp ~/下載/tar/crosstool-ng-1.9.0.tar.bz2  ./crosstool   

#tar jxvf crosstool-ng-1.9.0.tar.bz2   

4.建立需要的檔案目錄結構

進入工作目錄

#cd crosstool

#mkdir crosstool-build

#mkdir crosstool-install

#mkdir src

5.進入指令碼目錄 執行指令碼 拷貝依賴檔案到工作目錄

#cd crosstool-ng-1.19.0 

#./configure  --prefix=~/crosstool/crosstool-install

#make

#make install

#cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi/*   ./

6.必要的修改

#mv crosstool.config .config

7.執行圖形介面配置工具編譯過程和編譯選項

#../crosstool-install/bin/ct-ng menuconfig

會出來一個介面進行選擇 y  選擇  n不選

幾個關鍵配置

Paths and misc options --->   添(/home/xuww/crosstool/src) Local tarballs directory 存放原始碼包圍之

(/home/yao/crosstool/tools) Prefix directory 編譯器安裝路徑,也就是編譯結果生成的編譯器存在的位置

Target options  --->

 *** Target optimisations ***

(armv4t) Architecture level

(arm9tdmi) Emit assembly for CPU 

(arm920t) Tune for CPU

編譯的執行緒  回教快編譯速度,不宜超過四

Paths and misc options  --->

(2) Number of parallel jobs 

關閉java編譯器

 C compiler  --->

[ ] Java 

預設是開得  中間有星號   按N

設定編譯器字首中的第二個字元  一般是公司名嗎

Toolchain options  --->  (xuww) Tuple's vendor string  

C compiler  --->(crosstool-NG-${CT_VERSION}-yh) gcc ID string #cd ~/crosstool/crosstool-build

8.開始進入編譯的目錄 crosstool-build


#cd ~/crosstool/crosstool-build


#../crosstool-install/bin/ct-ng  build

就開始等吧   估計網速可以的換也就一個小時  如果網速慢機器破 就掛機吧   兩小時以上那






相關文章