0%

ubuntu下多个gcc g++的安装和管理切换

假如我们的ubuntu下安装了多个版本,有时候,我们需要旧的gcc g++版本,这时,就涉及到版本的切换,我们首先对多个版本设置不同的优先级,使用工具如下:

<1> 可以通过如下命令查看当前安装的版本:

1
2
ll /usr/bin/gcc*
ll /usr/bin/g++*

<2> 安装gcc-4.8 和gcc-5:

1
2
sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
sudo apt install gcc-5 gcc-5--multilib g++-5 g++-5--multilib

<3> 使用update-alternatives设置gcc和g++:

update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
其中40 ,50 ,70是优先级数值可以自己设定,—slave能保证gcc和g++保持相同的版本。

1
2
3
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7

<4> 使用如下命令选择gcc的版本:

1
sudo update-alternatives --config gcc

可以看到当前gcc默认的版本是gcc-7,下面我们修改为gcc-4.8,直接选择编号即可。

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).

Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-7 70 auto mode
1 /usr/bin/gcc-4.8 40 manual mode
2 /usr/bin/gcc-5 50 manual mode
3 /usr/bin/gcc-7 70 manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/gcc-4.8 to provide /usr/bin/gcc (gcc) in manual mod

<5> 验证是否修改成功:

1
2
gcc -v
g++ -v

<6> 删除

删除某个gcc版本的选项的话,可以使用

1
sudo update-alternatives --remove gcc /usr/bin/gcc-4.5

再使用apt-remove删除即可