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

gav*_*n.d 19 ubuntu gcc apt gcc11

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

Wil*_*rts 18

在 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. 须藤 apt-get 安装 gcc-11

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

which gcc-11
Run Code Online (Sandbox Code Playgroud)

产生:/usr/bin/gcc-11

  • 要非常小心,不要运行“apt-get update”,否则你的 20.04 会变成 21.04,在安装 gcc-11 后删除sources.list 行会更安全,这样你就不会最终将所有软件包升级到新的 ubuntu意外释放,这可能需要相当长的时间。 (4认同)
  • 这是完全安全的吗?如果添加 hirsute repo 使 GCC-11 可用,我们难道不应该期望它提供许多可能与 20.04 不兼容的其他更新包吗? (4认同)
  • 是的,那完全毁了我的发行版>D (4认同)
  • 这不是一个安全的答案,因为它可能会在 Focal 中造成一堆包,这些包本来是 Focal 而不是 Hirsuite。如果您想要 Focal 中的 Hirsuite 版本(例如,用于构建最新内核的 dwarves 或 libbpf),最好使用 GCC 和 Focal 中的 C 库重新构建它们。否则升级到 Hirsuite 或更高版本。 (2认同)

Dan*_*ter 17

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
Run Code Online (Sandbox Code Playgroud)

然后使用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;
Run Code Online (Sandbox Code Playgroud)

要对设置进行示例检查以查看默认的 gcc,您可以运行以下命令,如果它们显示正确的结果,则其余的都很好...

gcc --version;g++ --version;gcov --version;
Run Code Online (Sandbox Code Playgroud)

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

sudo update-alternatives --config gcc
Run Code Online (Sandbox Code Playgroud)

您可以在任何版本的 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:
Run Code Online (Sandbox Code Playgroud)

  • 运行 ``sudo update-alternatives --config cpp``` 并查看是否已配置不同的选项,如果没有,则使用 ``sudo update-alternatives --remove-all cpp``` 删除它。然后,如果您已经运行了我为 gcc 发布的命令,您还需要将其删除才能重新开始,然后重新复制并粘贴上面的命令以正确设置包括 cpp 在内的所有从站。 (7认同)
  • 对我有用,这就是我写它的原因。也许您应该详细说明以获得更多帮助。 (3认同)
  • “不起作用”评论可能是由于添加存储库后缺少“sudo apt update”。 (2认同)
  • 如何修复错误:替代 cpp 不能成为 gcc 的从属:它是主替代? (2认同)

小智 7

目前,我们还没有关于何时会看到 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
Run Code Online (Sandbox Code Playgroud)

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

然后,解压缩 tarball:

cd Downloads # replace with your download location
tar -xzvf gcc-11.1.0.tar.gz
cd gcc-11.1.0
Run Code Online (Sandbox Code Playgroud)

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

mkdir build
cd build
../configure --enable-multilib && make && sudo make install
Run Code Online (Sandbox Code Playgroud)

就这样!您现在已经在 Ubuntu 中安装了 GCC 11.1。

  • 不过,这可能需要很长时间才能构建,具体取决于机器。 (2认同)

小智 7

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

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

./contrib/download_prerequisites
Run Code Online (Sandbox Code Playgroud)

然后当它完成时,运行以下命令:

./configure
Run Code Online (Sandbox Code Playgroud)

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

cd build
../configure --enable-multilib && make && sudo make install
Run Code Online (Sandbox Code Playgroud)

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