前言
本文是博文 http://iyenn.com/rec/1709265.html 的分支博文。
在本博文中我们完成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的意思为:
-
eabi:- 代表 “Embedded Application Binary Interface”,即嵌入式应用程序二进制接口。
- 这是一种为嵌入式系统定义的应用程序接口,旨在标准化不同嵌入式设备之间的软件接口,确保不同编译器和操作系统之间的兼容性。
-
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的意思详见我的另一篇博文 http://iyenn.com/rec/1709266.html
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系统中:
![]()
然后解压出来…
![]()
按照博文 http://iyenn.com/rec/1709220.html 中的方法配置环境变量。
gedit ~/.bashrc
- 1
在末尾加上下面的配置语句:
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
- 1
- 2
- 3
执行下面的命令使配置生效:
source ~/.bashrc
- 1
![]()
运行下面的命令验证下配置:
echo $ARCH
- 1
echo $CROSS_COMPILE
- 1
![]()
arm-none-linux-gnueabihf-gcc -v
- 1
![]()
我之前系统的gcc版本信息如下:
![]()
可见已经不一样了,说明配置生效了。
评论记录:
回复评论: