一、版本选择

访问 https://releases.linaro.org/components/toolchain/binaries/,页面呈现如下内容:

依据自身需求点击进入特定版本,该页面提供了适用于 arm 架构的各类编译链。

二、编译链详情

  1. aarch64-elf
    • 面向 64 位 ARM 架构(AArch64),主要应用于嵌入式系统开发。其生成的可执行文件和库不依赖完整的 Linux 操作系统环境,常用于裸机编程或简单嵌入式系统。
  2. aarch64-linux - gnu
    • 同样针对 64 位 ARM 架构,用于创建能在 Linux 操作系统环境下运行的可执行文件和库,支持完整的 Linux 系统调用与功能,适用于开发 64 位 ARM Linux 系统上的应用程序和系统组件。
  3. aarch64_be-elf
    • 类似 aarch64-elf,但采用大端序(big - endian)字节序,而 aarch64 - elf 通常为小端序(little - endian),在特定硬件或系统要求大端序的场景中使用。
  4. aarch64_be-linux-gnu
    • 针对 64 位 ARM 大端序架构的 Linux 系统编译链,生成的可执行文件和库用于大端序的 64 位 ARM Linux 系统。
  5. arm-eabi
    • 针对 32 位 ARM 架构(ARMv7 及之前版本),常用于嵌入式系统开发,生成不依赖操作系统环境的可执行文件和库,类似 aarch64-elf 但适用于 32 位架构。
  6. arm-linux-gnueabi
    • 适用于 32 位 ARM 架构的 Linux 系统编译链,生成的可执行文件和库可在 32 位 ARM Linux 系统上运行,支持标准 Linux 系统调用和功能。
  7. arm-linux-gnueabihf
    • 与 arm-linux-gnueabi 类似,针对硬件浮点运算(hard-float)优化,在具有硬件浮点单元的 32 位 ARM 设备上可提升浮点运算性能。
  8. armeb-eabi
    • 32 位 ARM 大端序架构的编译链,生成不依赖操作系统环境的可执行文件和库,与 arm-eabi 区别在于字节序为大端序。
  9. armeb-linux-gnueabi
    • 用于 32 位 ARM 大端序架构的 Linux 系统编译链,生成的可执行文件和库用于大端序的 32 位 ARM Linux 系统。
  10. armeb-linux-gnueabihf
    • 结合 32 位 ARM 大端序架构和硬件浮点运算优化的 Linux 系统编译链。
  11. armv8l-linux-gnueabihf
    • 针对 ARMv8 架构的 32 位兼容模式(AArch32)且支持硬件浮点运算,用于生成在此特定架构 Linux 系统上运行的可执行文件和库。

三、平台选择与下载


选定编译链后进入下一页面,此页面依据编译平台进行选择。编译链文件以 gcc 开头(后缀为 asctxt 的文件并非编译链),如 i686-mingw 表示在 i686 架构的 mingw 环境运行,其他编译链同理。

四、安装与环境配置


在 Linux 环境下完成下载后进行解压操作,接着在 /etc/profile 文件中设置解压后的 binlib 目录地址为环境变量,从而完成安装与环境配置。