前言
本文是博文 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
的意思为:
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
的意思详见我的另一篇博文 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版本信息如下:
可见已经不一样了,说明配置生效了。