交叉编译工具链arm-linux-gnueabihf-gcc
2025-07-25
39
0
GCC ARM Linux GNUEABIHF 工具链详细介绍
gcc-arm-linux-gnueabihf
是一个针对 ARM 架构的交叉编译工具链,专门用于在 x86/x86_64 主机上开发运行在 ARM Linux 系统上的应用程序。这个工具链名称中的各部分含义如下:
gcc
: GNU Compiler Collectionarm
: 目标架构为 ARMlinux
: 目标系统为 Linuxgnueabihf
: GNU EABI Hard Float (使用硬件浮点单元的嵌入式应用二进制接口)
主要组件
这个工具链包含以下主要组件:
- 编译器:
arm-linux-gnueabihf-gcc
(C 编译器) - C++ 编译器:
arm-linux-gnueabihf-g++
- 汇编器:
arm-linux-gnueabihf-as
- 链接器:
arm-linux-gnueabihf-ld
- 二进制工具:
arm-linux-gnueabihf-objcopy
,arm-linux-gnueabihf-objdump
等 - 调试器:
arm-linux-gnueabihf-gdb
- 标准 C 库:针对 ARM 架构优化的 glibc 或 uClibc
特点
硬件浮点支持 (hf):
- 使用 ARM 处理器的硬件浮点单元 (VFP)
- 提供比软件浮点更高效的浮点运算性能
- 生成使用硬件浮点指令的代码
ABI 兼容性:
- 遵循 ARM EABI (嵌入式应用二进制接口)
- 与 ARM Linux 发行版兼容
交叉编译能力:
- 允许在 x86/x86_64 主机上编译 ARM 架构的代码
- 生成的二进制文件可直接在 ARM Linux 系统上运行
ARM 工具链的比较
arm-linux-gnueabi:
- 软件浮点实现
- 兼容性更广 (支持不带 FPU 的 ARM 芯片)
- 性能较低
aarch64-linux-gnu:
- 针对 ARM 64位架构 (ARMv8/AArch64)
- 不兼容 32位 ARM 系统
在 Ubuntu/Debian 上安装
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf
指定版本下载安装
wget https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
tar -xf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
export PATH=$PATH:$(pwd)/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz/bin
或者
安装到指定目录usr/local/arm/
sudo vi /etc/profile export PATH=$PATH:usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz/bin
卸载
sudo apt-get remove arm-linux-gnueabihf
或者
zzmt@zzmt:~/Desktop/images/files$ which arm-linux-gnueabihf-gcc
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
找到目录后,删除整个目录
rm -rf arm-linux-gnueabihf-gcc*