【交叉编译 | 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开发环境进阶搭建。

相关推荐
用户9718356334669 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪10 小时前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈1 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫1 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
2601_961875241 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj1 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes