linux交叉编译工具链下载

开篇赘述

ARM 架构主要有两种不同的位数变体:ARM32 和 ARM64。

  1. ARM32:也称为 ARMv7 架构,通常用于较旧的嵌入式系统和移动设备。ARM32 架构有 32 位寻址空间和指令集,适用于需要较低功耗和资源占用的场景。
  2. ARM64:也称为 ARMv8 架构,是较新的 ARM 架构版本,提供了更高性能、更大内存寻址范围和更多的寄存器。ARM64 架构支持 64 位寻址空间和指令集,适用于需要更高性能和更大内存支持的系统,比如现代的智能手机、平板电脑和服务器等设备。

因此,当选择交叉编译工具链时,需要确保选用的工具链与目标设备的架构兼容,以确保生成的可执行文件能够在目标设备上正确运行。对于 ARM32 和 ARM64 架构,你会发现相应的工具链,比如 `gcc-arm-linux-gnueabi` 用于 ARM32 架构,而 `gcc-aarch64-linux-gnu` 则用于 ARM64 架构。

方法二

如果要使用aarch64-linux-gnu-gcc 交叉编译器编译程序,且没有ARM 交叉编译环境,则使用如下命令安装:

1
2
  sudo apt-get install gcc-9-aarch64-linux-gnu
  sudo apt-get install gcc-aarch64-linux-gnu

查看aarch64-linux-gnu-gcc版本号

1
  aarch64-linux-gnu-gcc -v

不同的系统架构对应不同版本的gcc for arm编译工具

multiarch namesyscall ABIinstruction setendian­nessword sizedescriptionspec documents
aarch64-linux-gnulinuxARMv8little64aarch64 Linux PlatformAAPCS64 (ARM IHI 005A)1\\
ELF for the ARM 64-bit Architecture2
aarch64_be-linux-gnulinuxARMv8big64aarch64 Linux PlatformAAPCS64 (ARM IHI 005A)1\\
ELF for the ARM 64-bit Architecture2
aarch64-linux-gnu_ilp32linuxARMv8little32aarch64 Linux Platform
aarch64_be-linux-gnu_ilp32linuxARMv8big32aarch64 Linux Platform
arm-linux-gnulinuxARMv7little32Old ARM ABIAPCS (ARM DUI 0041 chapter 9)4
arm-linux-gnueabilinuxARMv7little32ARM EABI, soft-floatAAPCS (ARM IHI 0042D)5\\
ARM GNU/Linux ABI Supplement6
arm-linux-gnueabihflinuxARMv7little32ARM EABI, hard-floatAAPCS (ARM IHI 0042D)5 and\\
XXXXX (TBD)
armeb-linux-gnueabilinuxARMv7big32ARM EABI, soft-floatAAPCS (ARM IHI 0042D)5\\
ARM GNU/Linux ABI Supplement6
armeb-linux-gnueabihflinuxARMv7big32ARM EABI, hard-floatAAPCS (ARM IHI 0042D)5 and\\
XXXXX (TBD)
armv8l-linux-gnueabihflinuxARMv8little32ARMv8 EABI, hard-float
arm-eabiBare-MetalARMv7little32ARM EABI, soft-float
armeb-eabiBare-MetalARMv7big32ARM EABI, soft-float
aarch64-elfBare-MetalARMv8little64ARMv8 EABI, hard-float
aarch64_be-elfBare-MetalARMv8big64ARMv8 EABI, hard-float