linux下gcc、g++不同版本的安装和切换

 

Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要在不同版本之间切换。

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

ll /usr/bin/gcc*

2. 安装gcc-4.8 和gcc-5:

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++保持相同的版本。

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的版本:

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

$ 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 mode

5. 验证是否修改成功:

gcc -v
g++ -v

扫描二维码关注公众号,回复: 6068632 查看本文章

6. 删除

删除某个gcc版本的选项的话,可以使用
sudo update-alternatives --remove gcc /usr/bin/gcc-4.5
再使用apt-remove删除即可

---------------

@-pc:/home/zhu$ ll /usr/bin/gcc*
lrwxrwxrwx 1 root root     21 4月  16 16:41 /usr/bin/gcc -> /etc/alternatives/gcc*
-rwxr-xr-x 1 root root 915736 8月  28  2018 /usr/bin/gcc-5*
lrwxrwxrwx 1 root root     22 12月  8 04:19 /usr/bin/gcc-7 -> x86_64-linux-gnu-gcc-7*
lrwxrwxrwx 1 root root     22 6月   6  2018 /usr/bin/gcc-8 -> x86_64-linux-gnu-gcc-8*
lrwxrwxrwx 1 root root      8 3月  22 11:34 /usr/bin/gcc-ar -> gcc-ar-5*
-rwxr-xr-x 1 root root  31136 8月  28  2018 /usr/bin/gcc-ar-5*
lrwxrwxrwx 1 root root     25 12月  8 04:19 /usr/bin/gcc-ar-7 -> x86_64-linux-gnu-gcc-ar-7*
lrwxrwxrwx 1 root root     25 6月   6  2018 /usr/bin/gcc-ar-8 -> x86_64-linux-gnu-gcc-ar-8*
lrwxrwxrwx 1 root root      8 3月  22 11:34 /usr/bin/gcc-nm -> gcc-nm-5*
-rwxr-xr-x 1 root root  31136 8月  28  2018 /usr/bin/gcc-nm-5*
lrwxrwxrwx 1 root root     25 12月  8 04:19 /usr/bin/gcc-nm-7 -> x86_64-linux-gnu-gcc-nm-7*
lrwxrwxrwx 1 root root     25 6月   6  2018 /usr/bin/gcc-nm-8 -> x86_64-linux-gnu-gcc-nm-8*
lrwxrwxrwx 1 root root     12 3月  22 11:34 /usr/bin/gcc-ranlib -> gcc-ranlib-5*
-rwxr-xr-x 1 root root  31136 8月  28  2018 /usr/bin/gcc-ranlib-5*
lrwxrwxrwx 1 root root     29 12月  8 04:19 /usr/bin/gcc-ranlib-7 -> x86_64-linux-gnu-gcc-ranlib-7*
lrwxrwxrwx 1 root root     29 6月   6  2018 /usr/bin/gcc-ranlib-8 -> x86_64-linux-gnu-gcc-ranlib-8*
zhu@-pc:~$ sudo update-alternatives --install /usr/gcc gcc /usr/bin/gcc-5 70 --slave /usr/bin/g++ g++ /usr/bin/g++-5
zhu@-pc:~$ sudo update-alternatives --install /usr/gcc gcc /usr/bin/gcc-7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-7
zhu@-pc:~$ sudo update-alternatives --install /usr/gcc gcc /usr/bin/gcc-8 50 --slave /usr/bin/g++ g++ /usr/bin/g++-8
zhu@-pc:~$ sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/gcc).

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

Press <enter> to keep the current choice[*], or type selection number: 
 

猜你喜欢

转载自blog.csdn.net/flowerspring/article/details/88987428