交叉工具鏈

交叉編譯:是A機器上編譯生成,運行在B機器上。兩個機子有不同的機器指令。 工具鏈:一般由編譯器、連線器、解釋器和調試器組成。

交叉開發工具鏈

就是為了編譯、連結、處理和調試跨平台體系結構的程式代碼。每次執行工具鏈軟體時,通過帶有不同的參數,可以實現編譯、連結、處理或者調試等不同的功能。從工具鏈的組成上來說,它一般由多個程式構成,分別對應著各個功能。

工具鏈的構建方法

通常構建交叉工具鏈有如下三種方法:

方法一 分步編譯和安裝交叉編譯工具鏈所需要的庫和原始碼,最終生成交叉編譯工具鏈。該方法相對比較困難,適合想深入學習構建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用下列的方法二構建交叉工具鏈。

方法二 通過Crosstool腳本工具來實現一次編譯,生成交叉編譯工具鏈,該方法相對於方法一要簡單許多,並且出錯的機會也非常少,建議大多數情況下使用該方法構建交叉編譯工具鏈。

方法三 直接通過網上下載已經製作好的交叉編譯工具鏈。該方法的優點不用多說,當然是簡單省事,但該方法有一定的弊端就是局限性太大,因為畢竟是別人構建好的,也就是固定的,沒有靈活性,所以構建所用的庫以及編譯器的版本也許並不適合你要編譯的程式,同時也許會在使用時出現許多莫名其妙的錯誤,建議讀者慎用此方法。

下面摘錄一段:

DIY自己的GNU交叉工具鏈(i386-arm)

嵌入式設備由於不具備一定的處理器能力和存儲空間,程式開發一般用PC來完成,然後將執行檔下載到嵌入式系統中運行。這是嵌入式程式開發的不二選擇——Host/target模式。但這引發了一個問題:由於Host和Target的處理器體系結構不同,我們不能直接用PC上既有的程式開發工具,必須使用跨平台開發工具,即在Host上生成能在Target上運行格式的目標檔案。

與在PC上進行程式開發類似,嵌入式系統開發也需要編譯器、連結器、解釋程式等。本文討論GNU跨平台開發工具鏈的建立,包括: ld, gas, ar, gcc, glibc.

自己建立交叉編譯環境是一件很頭疼的事(處理版本的依賴性, 漫長的編譯過程...),如果你不想經歷這樣的痛苦,可以選擇網上編譯好了的工具鏈進行安裝.如果你用的是Debian/Ubuntu的發行版, 推薦使用Emdebian. 如果使用uClinux, 也可安裝arm-elf-tools.

相關詞條

熱門詞條

聯絡我們