gcc-11 何时会出现在 Ubuntu 个存储库中?

When gcc-11 will appear in Ubuntu repositories?

GCC 11.1 终于在昨天发布了。但是,现在它只能从源代码构建,所以我想知道我们什么时候可以通过 apt?

获得它

我们目前没有关于何时会看到 GCC 11.1 的 APT 版本的信息。下面,我展示了您可以遵循的分步构建说明:

您可以访问https://gcc.gnu.org/mirrors.html,选择离您最近的镜像,下载gcc-11.1的源码。0.tar.gz

然后,确保安装了构建系统:

sudo apt install gcc g++ make bison binutils gcc-multilib

是的,您需要 gcc 来构建 gcc。

然后,解压缩压缩包:

cd Downloads # replace with your download location
tar -xzvf gcc-11.1.0.tar.gz
cd gcc-11.1.0

最后一件事是实际构建它:

mkdir build
cd build
../configure --enable-multilib && make && sudo make install

就是这样!您现在已经在 Ubuntu.

中安装了 GCC 11.1

在 Ubuntu 20.04,我按照这里的说明操作:

这是为了:

  1. 通过向 /etc/apt/sources.list 添加一行来更新列出的镜像,如下所示:

    sudo add-apt-repository 'deb http://mirrors.kernel.org/ubuntu hirsute main universe'

    根据您所在的位置从列表中选择一个镜像。我选择内核 就像我在北美一样。

  2. sudo apt-get update

  3. sudo apt-get install gcc-11

在那之后 which gcc-11 应该会生成 gcc-11 的路径。在我的机器上是:

which gcc-11

产生:/usr/bin/gcc-11

sudo apt install build-essential manpages-dev software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install gcc-11 g++-11

然后使用update-alternatives设置默认gcc...

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9  --slave /usr/bin/cpp cpp /usr/bin/cpp-9 && \

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11  --slave /usr/bin/cpp cpp /usr/bin/cpp-11;

要抽样检查设置以查看默认的 gcc,您可以 运行 以下内容,如果它们显示正确的结果,那么其余的都很好...

gcc --version;g++ --version;gcov --version;

要重新配置到任何以前的 gcc 版本...

sudo update-alternatives --config gcc

您可以在 ubuntu 的任何版本上执行此操作,...尽情享受吧!

这是我的 6 个不同的 gcc 并存,默认为 gcc-11:

$ sudo update-alternatives --config gcc
There are 6 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-11   1010      auto mode
  1            /usr/bin/gcc-10   1000      manual mode
  2            /usr/bin/gcc-11   1010      manual mode
  3            /usr/bin/gcc-5    40        manual mode
  4            /usr/bin/gcc-7    700       manual mode
  5            /usr/bin/gcc-8    800       manual mode
  6            /usr/bin/gcc-9    900       manual mode

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

Casachii 的说明对我有用,但有一个问题。如果您 运行 在使用 casachii 的说明自行构建 GCC 时遇到任何问题,例如报告缺少 GMP、MPFR、MPC 等的构建错误,那么只需执行以下操作:

从 GCC 目录(您刚刚创建的“build”目录的父目录),运行:

./contrib/download_prerequisites

然后当它完成时,运行这个:

./configure

最后按照 casachii 的指示返回您的构建目录并构建 GCC 11.x

cd build
../configure --enable-multilib && make && sudo make install

这需要相当长的时间。顺便说一句 - 我会在对 casachii 的非常有用的答案的评论中添加这个,但是我刚刚创建了这个帐户,显然我没有资格发表评论。