当前位置: 首页 > news >正文

Linux X86平台安装ARM64交叉编译器方法

在 Linux x86 系统上安装 arm-linux-gcc(ARM 交叉编译器)的步骤如下:


方法一:通过包管理器安装(推荐)

大多数 Linux 发行版提供了预编译的 ARM 交叉编译器包。

1. Ubuntu/Debian
# 安装 ARM32 交叉编译器(适用于 ARMv7 等 32 位架构)
sudo apt install gcc-arm-linux-gnueabihf# 安装 ARM64 交叉编译器(适用于 AArch64 64 位架构)
sudo apt install gcc-aarch64-linux-gnu
2. Fedora/CentOS/RHEL
# 安装 ARM32 交叉编译器
sudo dnf install arm-linux-gnu-gcc# 安装 ARM64 交叉编译器
sudo dnf install aarch64-linux-gnu-gcc
3. Arch Linux
# 安装 ARM64 交叉编译器
sudo pacman -S aarch64-linux-gnu-gcc

方法二:手动安装 ARM 工具链

如果包管理器中没有所需版本,可从 ARM 官网或第三方下载预编译工具链。

1. 下载工具链

访问 ARM Developer 官网 或 Linaro Releases,选择适合的版本(如 arm-gnu-toolchain-<version>-x86_64-arm-none-linux-gnueabihf.tar.xz)。

2. 解压并安装
# 解压到 /opt 目录(需 sudo 权限)
sudo tar -xJvf arm-gnu-toolchain-*.tar.xz -C /opt# 设置环境变量(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export PATH="/opt/arm-gnu-toolchain/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

验证安装

# 检查 ARM 交叉编译器版本
arm-none-linux-gnueabihf-gcc --version  # 手动安装的工具链
aarch64-linux-gnu-gcc --version         # 通过包管理器安装的 ARM64 工具链

测试交叉编译

编写一个简单的 C 程序(如 hello.c)并编译:

# ARM32 编译
arm-linux-gnueabihf-gcc hello.c -o hello_arm# ARM64 编译
aarch64-linux-gnu-gcc hello.c -o hello_aarch64

使用 file 命令检查生成的可执行文件架构:

file hello_arm
# 输出应包含 "ARM aarch64" 或类似信息

常见问题

  1. 命令未找到

    • 确保工具链路径已添加到 PATH 环境变量。
    • 确认安装的包名与命令名一致(不同发行版可能有差异)。
  2. 依赖库缺失
    安装 32 位支持库(64 位系统):

    sudo apt install libc6-i386  # Ubuntu/Debian
    

通过以上步骤,您可以在 Linux x86 系统上成功安装 ARM 交叉编译器,并编译针对 ARM 架构的程序。

http://www.xdnf.cn/news/557461.html

相关文章:

  • 如何在 AOSP 中判断一个源文件属于哪个模块(以 CameraService 为例)
  • 首次中医知识问答模型微调
  • CSS display有几种属性值
  • 深入理解 Python 中的几种方法:实例方法、类方法、静态方法与特殊方法
  • leetcode 162. Find Peak Element
  • python新手学习笔记①
  • Linux探秘:驾驭开源,解锁高效能——基础指令
  • Git命令使用全攻略:从创建分支到合并的完整流程
  • 大模型高效微调技术全面解析:从PEFT原理到实战应用
  • 项目进度延误,如何按时交付?
  • 预训练模型:深度学习的通用特征引擎
  • Greenplum数据库维护篇之常用操作指导
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(十八)
  • Windows逆向工程提升之IMAGE_DOS_HEADER
  • 定时任务延迟任务
  • linux内核编译学习笔记
  • Java异常处理与File类终极指南
  • 【基础知识】SPI协议的种类及异同
  • 数据库 1.0.1
  • DAY28类
  • MYSQL备份恢复知识:第四章:备份锁
  • 【优秀三方库研读】在 quill 开源库中为什么封装 safe_fwrite,而不是直接使用系统 fwrite
  • MySQL中添加一个具有创建数据库权限的用户
  • Java并发进阶系列:深度讨论jdk1.8 ConcurrentHashMap并发环境下transfer方法桶位分配过程
  • C/C++ Select Poll Epoll 多路转接
  • python -> matplotlib简单用法
  • Unity3D仿星露谷物语开发47之砍树时落叶特效
  • Wan2.1 加速推理方法
  • 使用cursor自动生成前后端分离的web应用程序
  • ROS2 pkg 创建功能包