Naming format:
Arch [-Vendor] [-OS]-Abi
Arch: CPU architecture
Vendor: tool chain vendor
OS: the operating system running on the target. different operating systems correspond to different C libraries, such as newlib, glibc, and crt0. These different C libraries will be connected during the program connection phase.
Abi: Specifies the second-level file interface of the application to ensure that the Code Compiled by different compilation links is compatible. For example, arm Eabi is a standard established by arm companies, allowing a tool chain to connect to target files generated by other tool chains.
Example:
The arm-None-Eabi CPU adopts the ARM architecture and has no suppliers. The compiled program is not used in the operating system and the binary interface for compiling is arm Eabi. It is often used to compile bare metal systems (including Linux boot and kernel) in the ARM architecture ).
Arm-None-Linux-gnueabi the CPU is ARM-based and has no suppliers. The compiled program runs on the Linux operating system and the compiled binary interface is GNU Eabi. That is to say, it is used in Linux operating systems based on ARM architecture and is often used to compile U-boot, Linux kernel, and Linux applications of ARM architecture.
Arm-Eabi: arm compiler for Android
Reference: Lecture 3: toolchains