ARM交叉編譯工具鏈

轉載自:https://www.veryarm.com/cross-tools

爲什麼要用交叉編譯器?

交叉編譯通俗地講就是在一種平臺上編譯出能運行在體系結構不同的另一種平臺上的程序,比如在PC平臺(X86 CPU)上編譯出能運行在以ARM爲內核的CPU平臺上的程序,編譯得到的程序在X86 CPU平臺上是不能運行的,必須放到ARM CPU平臺上才能運行,雖然兩個平臺用的都是Linux系統。

arm交叉編譯器

交叉編譯工具鏈是一個由編譯器、連接器和解釋器組成的綜合開發環境,交叉編譯工具鏈主要由binutils、gcc和glibc三個部分組成。有時出於減小 libc 庫大小的考慮,也可以用別的 c 庫來代替 glibc,例如 uClibc、dietlibc 和 newlib。建立交叉編譯工具鏈是一個相當複雜的過程,如果不想自己經歷複雜繁瑣的編譯過程,網上有一些編譯好的可用的交叉編譯工具鏈可以下載,但就以學習爲目的來說讀者有必要學習自己製作一個交叉編譯工具鏈(目前來看,對於初學者沒有太大必要自己交叉編譯一個工具鏈)。

分類和說明

從授權上,分爲免費授權版和付費授權版。

免費版目前有三大主流工具商提供,第一是GNU(提供源碼,自行編譯製作),第二是 Codesourcery,第三是Linora。

收費版有ARM原廠提供的armcc、IAR提供的編譯器等等,因爲這些價格都比較昂貴,不適合學習用戶使用,所以不做講述。

  • arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目前已經被Mentor收購)基於GCC推出的的ARM交叉編譯工具。可用於交叉編譯ARM(32位)系統中所有環節的代碼,包括裸機程序、u-boot、Linux kernel、filesystem和App應用程序。
  • arm-linux-gnueabihf-gcc:是由 Linaro 公司基於GCC推出的的ARM交叉編譯工具。可用於交叉編譯ARM(32位)系統中所有環節的代碼,包括裸機程序、u-boot、Linux kernel、filesystem和App應用程序。
  • aarch64-linux-gnu-gcc:是由 Linaro 公司基於GCC推出的的ARM交叉編譯工具。可用於交叉編譯ARMv8 64位目標中的裸機程序、u-boot、Linux kernel、filesystem和App應用程序。
  • arm-none-elf-gcc:是 Codesourcery 公司(目前已經被Mentor收購)基於GCC推出的的ARM交叉編譯工具。可用於交叉編譯ARM MCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。
  • arm-none-eabi-gcc:是 GNU 推出的的ARM交叉編譯工具。可用於交叉編譯ARM MCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。

 交叉編譯器下載

以上地址都是直接從官網轉存到百度雲盤,僅爲方便國內用戶下載使用,並非本站製作,請勿用於商業或者非法用途。因爲版本多難以選擇,所以我們建議您使用該類編譯器的最新版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章