Ubuntu更新后,相对应的gcc版本也会更新,有些程序需要调用到本地的gcc来编译相对应的服务以及程序,在嵌入式linux开发中有时候需要本地的gcc来编译一个交叉编译器。基于这个原因有时候需要切换gcc的版本比如说高版本需要降低。之前一直使用手动安装指定的gcc版本,然后通过更改gcc的链接位置达到切换gcc版本的目的,但是这个方法存在问题,比如在更新后,后续安装VMware player的时候存在无法找到gcc 5.4因此正常安装后但是无法打开,因为一下服务需要本地编译,而VMware player只认gcc-5。因此解决方案如下。
使用
gcc -v 查看当前版本信息。若需要的gcc版本没有安装使用 sudo apt-get install gcc-× 指定的版本。
使用update-alternatives 命令配置
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
使用如上的命令则在配置中加入了这两个gcc版本的选项。
使用
sudo update-alternatives --config gcc
出现如下选项
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/gcc-4.8 50 auto mode
1 /usr/bin/gcc-4.8 50 manual mode
*2 /usr/bin/gcc-5 40 manual mode
设置以后通过 gcc -v查看当前版本信息。
如果需要删除则使用:
sudo update-alternatives --remove gcc /usr/bin/gcc-4.8
拓展:
update-alternatives 是dpkg的一款工具,用来维护系统命令的符号链接,可以更改默认的命令。当然不局限于gcc,还可以更比如java的配置。具体相关,goolge update-alternatives可以得到详细解答。