Amethyst Studio
411 words
2 minutes
Ubuntu 20.04安装最新版gcc

在新安装的ubuntu系统上,通过源码,安装最新版的gcc。

需要说明的是,本篇笔记写成时,gcc的最新版本是gcc-12,因此后面在新建目录以及链接的时候,都使用了gcc12gcc-12。如果再次安装的时候是更新的版本,最好使用新的名称。

Prerequirement#

先安装必要的部件,根据需要,如果有已经安装完毕的,可以略过。

$ sudo apt install -y build-essential git libmpc-dev flex

下载源码#

$ git clone git://gcc.gnu.org/git/gcc.git gcc && pushd gcc/

配置编译环境#

下载之后,进入到gcc目录下,进行配置,这里我们指定把gcc给安装到/usr/local/gcc12里去,这里我们的系统是64位的,因此直接用--disable-multilib,只安装64位。

$ ./configure --prefix=/usr/local/gcc12 --with-system-zlib --disable-multilib
$ make -j6 # 编译,略耗时
$ sudo make installls 

之后,将 /usr/local/gcc12/bin 下的可执行程序全都软链接到 /usr/bin/

$ sudo ln -sf /usr/local/gcc12/bin/gcc /usr/bin/gcc-12
$ sudo ln -sf /usr/local/gcc12/bin/g++ /usr/bin/g++-12
$ sudo ln -sf /usr/local/gcc12/bin/gcc-ar /usr/bin/gcc-ar-12
$ sudo ln -sf /usr/local/gcc12/bin/gcc-nm /usr/bin/gcc-nm-12
$ sudo ln -sf /usr/local/gcc12/bin/gcc-ranlib /usr/bin/gcc-ranlib-12
$ sudo ln -sf /usr/local/gcc12/bin/gcov /usr/bin/gcov-12
$ sudo ln -sf /usr/local/gcc12/bin/gcov-dump /usr/bin/gcov-dump-12
$ sudo ln -sf /usr/local/gcc12/bin/gcov-tool /usr/bin/gcov-tool-12

配置多版本gcc共存#

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 --slave /usr/bin/gcov gcov /usr/bin/gcov-12
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90

之后,如果要更改默认版本,使用如下的命令

$ 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-12   120       auto mode
  1            /usr/bin/gcc-12   120       manual mode
  2            /usr/bin/gcc-9    90        manual mode

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

上面是修改gcc的默认版本,同理也可以修改g++的默认版本。

参考链接#

Ubuntu 20.04安装最新版gcc
https://ziyue.cafe/posts/install-gcc-on-ubuntu-from-source/
Author
Kaida Amethyst
Published at
2022-03-16