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

从ARM官方获取自己想要的gcc交叉编译工具链接(Arm GNU Toolchain),并在Ubuntu系统中进行配置

前言

本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145547974 的分支博文。

在本博文中我们完成gcc交叉编译工具gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz的下载、配置、测试。

下载自己想要的gcc交叉编译工具的源码

目标文件的名字及说明

目标是下载到文件:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz
即下面截图中红框中的文件:
在这里插入图片描述
名字gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz中的eabihf的意思为:

  1. eabi

    • 代表 “Embedded Application Binary Interface”,即嵌入式应用程序二进制接口。
    • 这是一种为嵌入式系统定义的应用程序接口,旨在标准化不同嵌入式设备之间的软件接口,确保不同编译器和操作系统之间的兼容性。
  2. hf

    • 代表 “hard float”,即硬件浮点运算。
    • 这表示目标系统使用硬件支持的浮点单元(FPU)进行浮点运算,而不是使用软件模拟浮点运算。硬浮点运算通常会比软浮点运算快,因为硬件浮点单元可以直接执行浮点操作,而不需要依赖于软件来模拟。

因此,eabihf 共同表明该工具链是为支持 嵌入式应用程序二进制接口(EABI)的目标架构,且该架构使用 硬件浮点运算(HF)的交叉编译工具链。

如果你的目标平台具有硬件浮点单元(比如许多基于ARM的嵌入式处理器),使用带有 hf 的工具链会使得浮点运算更加高效。如果目标平台不支持硬件浮点运算,通常会使用没有 hf 的工具链(例如 eabi)。

名字gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz中的gnu的意思详见我的另一篇博文 https://blog.csdn.net/wenhao_ir/article/details/145650191

ARM官网下载自己想要的gcc交叉编译工具的源码

进入ARM官网:
https://developer.arm.com/
在这里插入图片描述
搜索框中搜索“Arm GNU Toolchain”
在这里插入图片描述
点击下图红框中的搜索结果:
在这里插入图片描述
点击下图中的“Download Arm GNU Toolchain”,进入“Arm GNU Toolchain”的下载列表页:
在这里插入图片描述
下面这个页面的链接为:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
在这里插入图片描述
上面这个页面的链接为:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
在这个页面中往下拉找寻文件gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

但是不幸的事情发生了,下载列表中最早的Arm GNU Toolchain只提供到2022年的版本了,2022年之前的都没有了,如下图所示:
在这里插入图片描述
那就只有用搜索引擎搜索目标文件gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz了。

搜索引擎搜索下载自己想要的gcc交叉编译工具的源码

百度中搜索gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz,很快就在阿里云的镜像站中找到这个文件了,阿里云镜像站的链接为:
https://mirrors.aliyun.com/armbian-releases/_toolchain/
在这里插入图片描述
下载后我传到百度网盘,方便以后取用,百度网盘下载链接:
https://pan.baidu.com/s/1hknQwu33TOKrBFBDleLavA?pwd=fs6u

配置Linux系统使用下载的gcc交叉编译工具

将下载好的文件gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz复制到Ubuntu系统中:
在这里插入图片描述
然后解压出来…
在这里插入图片描述
按照博文 https://blog.csdn.net/wenhao_ir/article/details/144326545 中的方法配置环境变量。

gedit ~/.bashrc

在末尾加上下面的配置语句:

export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabihf-
export PATH=$PATH:/home/book/mytools/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin

执行下面的命令使配置生效:

source ~/.bashrc

在这里插入图片描述
运行下面的命令验证下配置:

echo $ARCH
echo $CROSS_COMPILE

在这里插入图片描述

arm-none-linux-gnueabihf-gcc -v

在这里插入图片描述
我之前系统的gcc版本信息如下:
在这里插入图片描述
可见已经不一样了,说明配置生效了。

末尾

相关文章:

  • java基础语知识(8)
  • 如何系统成为高级Qt工程师?
  • RadASM环境,win32汇编入门教程之六
  • HDFS应用-后端存储cephfs-java-API
  • qt实现文字跑马灯效果
  • Windows服务器搭建时间同步服务
  • QT QLineEdit 如何支持文件拖放
  • DeepSeek R1生成图片总结2(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)
  • Unity Mirror 多房间匹配
  • DeepSeek AI 完全使用指南:从入门到精通
  • CSDN、markdown环境下如何插入各种图(流程图,时序图,甘特图)
  • 线性模型 - Logistic回归(参数学习具体示例)
  • PHP Web 开发基础
  • 什么是网络安全?网络安全防范技术包括哪些?
  • 【DeepSeek-R1】 API申请(腾讯云)
  • 2022年SCI1区TOP:K-means聚类算法KO,深度解析+性能实测
  • 蓝桥杯 Java B 组之哈希表应用(两数之和、重复元素判断)
  • 基于Odoo与IMAX-8工业物联技术的倍捻机智慧运维实施方案
  • Aseprite详细使用教程(9)——渐变工具
  • 电磁兼容(EMC):整改案例(十二)调整PCB叠层设计解决静电问题
  • 当代科技拟召开债券持有人会议 ,对“H20科技2”进行四展
  • 费高云不再担任安徽省人民政府副省长
  • 三亚通报救护车省外拉警报器开道旅游:违规违法,责令公司停业整顿
  • 网信部门曝光网络谣言典型案例,“AI预测彩票号码百分百中奖”等在列
  • 马上评丨为护士减负,不妨破除论文“硬指标”
  • 李公明 | 一周画记:印巴交火会否升级为第四次印巴战争?