【交叉编译 | arm版Ubuntu】arm版Ubuntu(飞腾平台)开发环境、交叉编译工具安装

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你------泰戈尔🍭
⏰发布时间⏰:

本文未经允许,不得转发!!!

目录


🎄一、概述

最近需要将之前开发的程序 "搬运 " 到飞腾平台的运行,这个平台是基于arm架构国产自主研发的飞腾芯片运行的Ubuntu系统搭建的。

目标系统信息如下:

shell 复制代码
wkd$ cat /proc/version
Linux version 5.15.0-164-generic (buildd@bos03-arm64-074) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #174-Ubuntu SMP Fri Nov 14 20:32:57 UTC 2025
wkd$ 
wkd$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04
Codename:	jammy
wkd$ 
wkd$ uname -a
Linux ckvms-hwtais 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:32:57 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux

这是个Ubuntu系统,要"搬运"程序到这里运行有2种方法,

  • 1、直接在这个Ubuntu系统上使用自带的gcc、g++等编译工具重新编译代码;
  • 2、使用x86架构的电脑当开发主机并安装需要的交叉编译工具链。

本文侧重于第2种方式,下面将介绍这2种方式。


🎄二、arm版Ubuntu自带的编译工具

在arm版Ubuntu系统的命令行执行下面命令,安装必要的编译工具、开发工具:

shell 复制代码
sudo apt-get install gcc g++ gdb make cmake

安装后,可以看到gcc编译器的目标平台是 aarch64-linux-gnu,gcc版本是11.4.0

g++编译器的目标平台也是 aarch64-linux-gnu,版本是11.4.0

这样就可以编译arm架构的程序了。


🎄三、在 x86 平台安装目标平台的交叉编译器

上个小节是直接在arm版的Ubuntu搭建开发环境,但有时目标平台的系统不方便一直使用。如果可以在 x86 的常用电脑搭建开发环境,编译后只打包程序过去会方便很多。顺着这个思路有下面三个方法搭建交叉编译环境:

  • 在x86平台系统的命令行执行命令 sudo apt-get install build-essential,安装交叉编译工具链;
  • 在x86平台系统的命令行执行命令sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu,安装交叉工具链;
  • 自己到网上下载交叉工具链安装包,手动安装。

我试了第一个方法,安装后的gcc版本是 gcc-10.3.0 的,与目标平台要求的 11.4.0 有些差距,所以决定自己尝试第三个方法,这个小节也主要介绍这个方法的几个下载地址及操作,记录一下以防忘记。

开始之前,先了解一下要下载的交叉工具链,aarch64-linux-gnu-gcc是用于在x86等主机上为ARM 64位(AArch64)架构的Linux系统编译程序的核心工具。简单来说,它的作用就是"东家干活,西家运行",是飞腾芯片嵌入式开发的关键。

✨3.1 Arm官方工具链下载

Arm官方工具链是最权威、最通用的。ARM公司官方发布,包含全套工具,兼容性和标准化最好,是ARM架构开发的基准。

Arm官方工具链下载地址:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

进入页面后,一直往下滑,会看到一些近几年的版本,虽然也没有 11.4 的,但可以选择稍微靠近的 11.3 的版本进行下载:

点开 + 号,依次找到 x86_64 Linux hosted cross toolchains -> AArch64 GNU/Linux target (aarch64-none-linux-gnu) -> arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz 进行下载。

完成后,解压就可以使用了:

shell 复制代码
tar xf arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz

最后记得修改环境变量:

shell 复制代码
# 打开文件
sudo vi /etc/profile

# 在最后添加你的aarch64-none-linux-gnu-gcc 路径
export PATH="/opt/linux/x86-arm/aarch64-none-linux-gnu/bin:$PATH"

# 使环境变量生效
source /etc/profile

补充:下载适用于A型架构的传统工具链版本(8.2-2018.08至10.3-2021.07)地址:https://developer.arm.com/downloads/-/gnu-a


✨3.2 Linaro版本工具链下载

Linaro版本工具链是最主流、优化好的。由Linaro(ARM生态联盟)维护,通常基于GCC进行针对ARM的深度性能优化,是嵌入式开发者的热门选择。

Linaro版本工具链下载地址:https://releases.linaro.org/components/toolchain/binaries/

但这里缺少 11.4 的版本,不懂怎么回事。。。所以这个,目前暂时无法下载。


🎄四、总结

👉本文介绍了 arm版Ubuntu(飞腾平台)搭建开发环境的过程,主要是如何下载、安装交叉编译工具安装。

如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

参考:
交叉编译工具 aarch64-linux-gnu-gcc 的介绍与安装
Linux环境中安装指定版本的gcc-aarch64-linux-gnu、gcc-arm-linux-gnueabi工具包
【飞腾平台实时Linux方案系列】第八篇 - 飞腾平台实时Linux开发环境进阶搭建。

相关推荐
神梦流25 分钟前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器
EHagSJVNpTY35 分钟前
MATLAB 中基于最大重叠离散小波变换的心电信号处理探索
ubuntu
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
Lsir10110_1 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
Sheffield1 小时前
command和shell模块到底区别在哪?
linux·云计算·ansible
历程里程碑2 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
郝学胜-神的一滴2 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
承渊政道2 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
技术路上的探险家2 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
代码AC不AC2 小时前
【Linux】深入理解缓冲区
linux·缓冲区·标准错误