一、版本选择
访问 https://releases.linaro.org/components/toolchain/binaries/,页面呈现如下内容:
依据自身需求点击进入特定版本,该页面提供了适用于 arm 架构的各类编译链。
二、编译链详情
- aarch64-elf
- 面向 64 位 ARM 架构(AArch64),主要应用于嵌入式系统开发。其生成的可执行文件和库不依赖完整的 Linux 操作系统环境,常用于裸机编程或简单嵌入式系统。
- aarch64-linux - gnu
- 同样针对 64 位 ARM 架构,用于创建能在 Linux 操作系统环境下运行的可执行文件和库,支持完整的 Linux 系统调用与功能,适用于开发 64 位 ARM Linux 系统上的应用程序和系统组件。
- aarch64_be-elf
- 类似 aarch64-elf,但采用大端序(big - endian)字节序,而 aarch64 - elf 通常为小端序(little - endian),在特定硬件或系统要求大端序的场景中使用。
- aarch64_be-linux-gnu
- 针对 64 位 ARM 大端序架构的 Linux 系统编译链,生成的可执行文件和库用于大端序的 64 位 ARM Linux 系统。
- arm-eabi
- 针对 32 位 ARM 架构(ARMv7 及之前版本),常用于嵌入式系统开发,生成不依赖操作系统环境的可执行文件和库,类似 aarch64-elf 但适用于 32 位架构。
- arm-linux-gnueabi
- 适用于 32 位 ARM 架构的 Linux 系统编译链,生成的可执行文件和库可在 32 位 ARM Linux 系统上运行,支持标准 Linux 系统调用和功能。
- arm-linux-gnueabihf
- 与 arm-linux-gnueabi 类似,针对硬件浮点运算(hard-float)优化,在具有硬件浮点单元的 32 位 ARM 设备上可提升浮点运算性能。
- armeb-eabi
- 32 位 ARM 大端序架构的编译链,生成不依赖操作系统环境的可执行文件和库,与 arm-eabi 区别在于字节序为大端序。
- armeb-linux-gnueabi
- 用于 32 位 ARM 大端序架构的 Linux 系统编译链,生成的可执行文件和库用于大端序的 32 位 ARM Linux 系统。
- armeb-linux-gnueabihf
- 结合 32 位 ARM 大端序架构和硬件浮点运算优化的 Linux 系统编译链。
- armv8l-linux-gnueabihf
- 针对 ARMv8 架构的 32 位兼容模式(AArch32)且支持硬件浮点运算,用于生成在此特定架构 Linux 系统上运行的可执行文件和库。
三、平台选择与下载
选定编译链后进入下一页面,此页面依据编译平台进行选择。编译链文件以 gcc
开头(后缀为 asc
和 txt
的文件并非编译链),如 i686-mingw
表示在 i686
架构的 mingw
环境运行,其他编译链同理。
四、安装与环境配置
在 Linux 环境下完成下载后进行解压操作,接着在 /etc/profile
文件中设置解压后的 bin
、lib
目录地址为环境变量,从而完成安装与环境配置。