在配置arm交叉编译器的过程中,发现正点原子和网上的大部分教程都是教你安装Linaro
版的交叉编译器;但笔者实际去看的时候发现其早就不更新了,最近一次的更新还是在2019年:
这就很难受了,于是转头安装arm官方的交叉编译器,这个可是一直在更新的。
注:Ubuntu使用apt-get install gcc-arm-linux-gnueabihf
命令安装的为Linaro
版交叉编译器
下载工具链
网上部分教程的ARM网址是过时的,上面没有最新的工具链,这里给出最新下载地址:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
点进去会有很多的下载链接,笔者需要在x86 Ubuntu虚拟机下编译IMX6ULL的文件,因此需要选择arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
下载。
在终端中直接执行以下命令即可下载:
sudo wget https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
当然,你也可以在Windows中下载完成后,传输到Ubuntu虚拟机中,就是有点麻烦。
如果你使用命令下载中断了,记得删除已经下载的文件,不然再次下载会另存为一个.1
后缀的文件:
安装工具链
输入以下命令解压下载的压缩包:(根据文件不同,命令中的对象也不同,不要无脑复制)
sudo tar -xvf arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
新建一个arm目录用于存放工具链:(其实放哪都行,改下环境变量就是了,但是会很乱)
sudo mkdir /usr/local/arm
将解压出来的文件夹复制到此目录下:
sudo cp arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf /usr/local/arm -r
为了使用相关命令,我们需要将工具链的可执行文件添加到环境变量中,如果你使用的是BASH
(系统自带的那个shell),那么按照下方的操作即可:
sudo vim /etc/profile
在末尾添加如下内容:
export PATH=$PATH:/usr/local/arm/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf/bin
保存退出重启即可完成配置。
如果你使用的是zsh
则按照下方步骤进行配置:
vim ~/.zshrc
在指定的位置(为了优雅),添加环境变量:
export PATH=$PATH:/usr/local/arm/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf/lib
添加完成后的效果如下:
保存退出,source一下:
source ~/.zshrc
可以了,官方工具链需要使用arm-none-linux-gnueabihf-gcc
命令: