Linux环境中安装指定版本的gcc-aarch64-linux-gnu、gcc-arm-linux-gnueabi工具包

本文详细介绍了如何在Ubuntu系统中手动下载并安装特定版本的GCC-aarch64-linux-gnu 5.5,包括从ARM和Linaro官网获取软件包,通过`update-alternatives`配置多版本共存,并设置运行环境。同时,文章还提到了gcc-arm-linux-gnueabi的类似安装方法。
摘要由CSDN通过智能技术生成

搭建编译环境时,有时需要安装指定版本的gcc-aarch64-linux-gnu、gcc-arm-linux-gnueabi工具包,
以安装gcc-aarch64-linux-gnu的5.x版本为例,如果直接通过执行指令:apt-get install gcc-aarch64-linux-gnu gcc-5-aarch64-linux-gnu,会报如下错误提示:
在这里插入图片描述

下面我以**Ubuntu中安装version5.5版本的gcc-aarch64-linux-gnu为例讲解,**gcc-arm-linux-gnueabi的安装方法一样

1. 下载想要安装的版本工具包

要下比较新的版本的话,可以去arm developer官网下载,链接如下:
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
如果上面的链接没有你想要的版本,可以去linaro官网看看,里面比较旧的版本还有,链接如下:
https://releases.linaro.org/components/toolchain/binaries/

1-1.由于我想安装的是5.x的版本,所以我是到上面那个linaro官网下载的,点击进入官网下载界面如下:
在这里插入图片描述

1-2.我选择下载5.5版本,所以点击上图的5.5-2017-10这个文件夹进去,看到如下:
在这里插入图片描述

1-3.可以看到上图有aarch64-linux-gnu这个文件夹,请点击进去,看到如下:
在这里插入图片描述

直接点击上图红色箭头指向的那个文件,即可下载工具包到本地电脑。

如果你需要安装的是gcc-arm-linux-gnueabi工具包,那么,上面的1-3步中,选择文件夹arm-linux-gnueabi,同样去下载对应的工具包即可。

2.在你的Ubuntu中安装默认版本(这个版本一般是适配你环境较新的)

2-1.在root权限下,执行指令,具体如下:
root@bruce:/# apt-get install gcc-aarch64-linux-gnu
2-2.执行完后,会在你的环境中安装一个默认适配你环境的较新版本,为查看这个版本是什么,可以输入:
root@bruce:/# aarch64-linux-gnu-gcc -v
我输完后看到版本信息如下:
在这里插入图片描述

可以看到当前版本是什么,我的是版本9.3,然后再接着去安装你想要的版本。

3.把前面第1步中下载好的工具包传到Ubuntu系统,然后放到目标文件夹下解压

3-1.通过filezilla工具,把开始第1步下载到本地电脑的工具包传到Ubuntu中,如果是用的其他传输工具也可,传输方法不再缀述;

3-2.在Ubuntu中,把工具包文件拷贝到你想放置的文件夹,由于在第2步中安装默认版本时,对应版本包是默认存放在/usr/bin目录下,所以,我这里也把工具包放到该目录下进行解压,解压后会得到一个工具包文件夹,操作如下:
root@bruce:/#cp xxx /usr/bin //xxx代表你工具包放置的位置,如果原本就放到/usr/bin下,就不用执行这个cp动作了
root@bruce:/#cd usr/bin/
root@bruce:/usr/bin#xz -d gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
root@bruce:/usr/bin#tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar
root@bruce:/usr/bin#cd …/…/ //切回根目录,除了这步解压会到对应目录下执行,其他的操作都是在根目录下执行
执行完后,在usr/bin/下会有一个gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu文件夹,这样,就已经把这个版本的工具包装到Ubuntu下,但是还需进行下面步骤的配置才可使用。

4.使用update-alternatives指令配置添加链接(参考《奔跑吧Linux内核入门篇—张天飞(笨叔叔)》)

4-1.先介绍一下update-alternatives命令的用法,如下:
update-alternatives --install [link] [name] [path] [priority]
参数含义介绍(特别重要,涉及下面对指令使用的理解):
[link]:指向/etc/alternatives/的符号引用
[name]:链接名称
[path]:这个命令对应的可执行文件的实际路径(也就是上面第3步工具包路径)
[priority]:优先级,在auto模式下,数字越大,优先级越高。

4-2.向系统添加version 5.5的链接并设置优先级
root@bruce:/# update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu 5
这里参数我们写aarch64-linux-gnu-gcc, 写我们工具包的实际位置(要写到工具包文件夹),我的是/usr/bin/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu
执行完上面指令后会有如下提示:
在这里插入图片描述

4-3.向系统添加我们第2步中默认安装的version(我这里的是9.3)的链接并设置优先级
root@bruce:/# update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-9 9
注意,这里你虽然在第2步中通过aarch64-linux-gnu-gcc -v查看过默认版本的版本号(我的是版本9.3),但你可能还是不知道其 的实际路径中默认安装的工具包的文件夹名,没有关系,我们可以使用输命令时tab键的补全提示功能;以我上面为例,我们在上面输入 路径参数时,先输入/usr/bin/aarch64-linux-gnu-gc,输到这里时按tab键,命令端会进行提示,如下:
在这里插入图片描述
这里我们选红色箭头指的那个文件夹补全。

4-4.我们上面全部配置好后,系统中就有两个版本的aarch64-linux-gnu-gcc可用了,那么我们使用时如何切换使用的版本呢?可以通过如下指令进行配置:
root@bruce:/# update-alternatives --config aarch64-linux-gnu-gcc
执行完后可以看到如下,根据图片中划线那行的提示,我要使用5.5版本,所以就输入了2,下面是输完2后的效果:
在这里插入图片描述
4-5.执行完上面的设置后,系统编译时执行aarch64-linux-gnu-gcc使用的工具版本就是5.5的了,但是如果此时直接使用aarch64-linux-gnu-gcc,会出现报错,因为5.5版本的全局环境变量没有设置,比如执行:aarch64-linux-gnu-gcc -v查看当前版本号时,会报错提示“bash: /usr/bin/aarch64-linux-gnu-gcc: Is a directory”
所以,请按下面第5步操作配置全局环境变量。

5.配置下载工具包安装的aarch64-linux-gnu-gcc版本(version 5.5)的运行环境

5-1.在~/.bashrc中最后面加上下面那句PATH配置:
export PATH=$PATH:/usr/bin/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin
这里/usr/bin/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu是我们工具包存放的实际位置,整个路径要写到工具包的bin文件夹下,即:/usr/bin/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin
加上那句话后请保存退出。
5-2.执行source指令使配置生效,如下:
root@bruce:/# source ~/.bashrc
5-3.再次执行如下指令检查aarch64-linux-gnu-gcc是否可用了并查看当前系统使用的版本号:
root@bruce:/# aarch64-linux-gnu-gcc -v
可以看到如下,当前正在使用的版本号为5.5了:
在这里插入图片描述

如果我们后面想切换系统使用的编译器版本号,可以再按照上面4-4的操作去修改。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值