在下载gcc for arm的时候,往往会有很多个版本:

这些版本的区别是什么?我该下载哪个版本?
区别无外乎几个:大端 or 小端、ARMv7 or ARMv8、32位 or 64位、裸机 or 嵌入式Linux
| multiarch name | syscall ABI | instruction set | endianness | word size | description | spec documents |
| aarch64-linux-gnu | linux | ARMv8 | little | 64 | aarch64 Linux Platform | |
| aarch64_be-linux-gnu | linux | ARMv8 | big | 64 | aarch64 Linux Platform | |
| 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 | |
| arm-linux-gnueabihf | linux | ARMv7 | little | 32 | ARM EABI, hard-float | AAPCS (ARM IHI 0042D)5 and |
| armeb-linux-gnueabi | linux | ARMv7 | big | 32 | ARM EABI, soft-float | |
| armeb-linux-gnueabihf | linux | ARMv7 | big | 32 | ARM EABI, hard-float | AAPCS (ARM IHI 0042D)5 and |
| 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 |
|

本文详细解析了GCC for ARM的不同版本及其适用场景,包括大端与小端、ARMv7与ARMv8、32位与64位、裸机与嵌入式Linux等关键区别。为开发者选择合适版本提供了明确指导。
1135





