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 name syscall ABI instruction set endian­ness word size description spec documents
aarch64-linux-gnu linux ARMv8 little 64 aarch64 Linux Platform AAPCS64 (ARM IHI 005A)1\\
ELF for the ARM 64-bit Architecture2
aarch64_be-linux-gnu linux ARMv8 big 64 aarch64 Linux Platform AAPCS64 (ARM IHI 005A)1\\
ELF for the ARM 64-bit Architecture2
aarch64-linux-gnu_ilp32 linux ARMv8 little 32 aarch64 Linux Platform
aarch64_be-linux-gnu_ilp32 linux ARMv8 big 32 aarch64 Linux Platform
arm-linux-gnu linux ARMv7 little 32 Old ARM ABI APCS (ARM DUI 0041 chapter 9)4
arm-linux-gnueabi linux ARMv7 little 32 ARM EABI, soft-float AAPCS (ARM IHI 0042D)5\\
ARM GNU/Linux ABI Supplement6
arm-linux-gnueabihf linux ARMv7 little 32 ARM EABI, hard-float AAPCS (ARM IHI 0042D)5 and\\
XXXXX (TBD)
armeb-linux-gnueabi linux ARMv7 big 32 ARM EABI, soft-float AAPCS (ARM IHI 0042D)5\\
ARM GNU/Linux ABI Supplement6
armeb-linux-gnueabihf linux ARMv7 big 32 ARM EABI, hard-float AAPCS (ARM IHI 0042D)5 and\\
XXXXX (TBD)
armv8l-linux-gnueabihf linux ARMv8 little 32 ARMv8 EABI, hard-float
arm-eabi Bare-Metal ARMv7 little 32 ARM EABI, soft-float
armeb-eabi Bare-Metal ARMv7 big 32 ARM EABI, soft-float
aarch64-elf Bare-Metal ARMv8 little 64 ARMv8 EABI, hard-float
aarch64_be-elf Bare-Metal ARMv8 big 64 ARMv8 EABI, hard-float