釋義
1、文件系統和工具鍊。如:一套流程裡面用到的每個工具和相關的庫組成的集合,就稱為工具鍊(tool chain)。
2、交叉編譯器。如:在linux下建立可用于調試arm開發闆的程序的交叉編譯器。交叉編譯器一直處于開發狀态,你要了解某個版本的穩定性,要去找patch。
而所謂的交叉編譯就是:在一種平台上編譯,編譯出來的程序,是放到别的平台上運行,即編譯的環境和運行的環境不一樣,屬于交叉編譯,主要和嵌入式開發有關。之所以要有交叉編譯,主要原因是:嵌入式系統中的資源太少。
四種工具
cross assembler
cross compile
cross library
cross link
Toolchain 一般内附有程式編譯器(compiler),如GCC,可以進行程式編譯、或跨平台編譯(cross compile)工作。目前的工具鍵軟件有RealWorks toolchain、GNU toolchain。微軟公司的Visual Studio 2005是Windows CE的toolchain。
交叉編譯(cross compile)
交叉編譯通俗地講就是在一種平台上編譯出能運行在體系結構不同的另一種平台上的程序,比如在PC平台(X86 CPU)上編譯出能運行在以ARM為内核的CPU平台上的程序,編譯得到的程序在X86 CPU平台上是不能運行的,必須放到ARM CPU平台上才能運行,雖然兩個平台用的都是Linux系統。這種方法在異平台移植和嵌入式開發時非常有用。相對與交叉編譯,平常做的編譯叫本地編譯,也就是在當前平台編譯,編譯得到的程序也是在本地執行。
常用構建交叉工具鍊方法
方法一:分步編譯和安裝交叉編譯工具鍊所需要的庫和源代碼,最終生成交叉編譯工具鍊。該方法相對比較困難,适合想深入學習構建交叉工具鍊的讀者。如果隻是想使用交叉工具鍊,建議使用方法二或方法三構建交叉工具鍊。
方法二:通過Crosstool腳本工具來實現一次編譯生成交叉編譯工具鍊,該方法相對于方法一要簡單許多,并且出錯的機會也非常少,建議大多數情況下使用該方法構建交叉編譯工具鍊。
方法三:直接通過網上(ftp.arm.kernel.org.uk)下載已經制作好的交叉編譯工具鍊。該方法的優點不用多說,當然是簡單省事,但與此同時該方法有一定的弊端就是局限性太大,因為畢竟是别人構建好的,也就是固定的沒有靈活性,所以構建所用的庫以及編譯器的版本也許并不适合你要編譯的程序,同時也許會在使用時出現許多莫名的錯誤,建議慎用此方法。