昨天终于发布了GCC 11.1版。然而,现在它只能从源代码构建,所以我想知道我们何时可以通过apt
获取它?
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:
sudo apt update
引起的。 - Drew Dormannsudo update-alternatives --config cpp
命令,检查它是否已经配置了不同的选项,如果没有,则使用 sudo update-alternatives --remove-all cpp
删除它。然后,如果您已经运行了我发布的gcc命令,则需要将其删除,以便重新开始,然后重新复制并粘贴上面的命令,以适当地设置所有从属关系,包括cpp。 - DanglingPointerupdate-alternatives: error: alternative cpp can't be slave of gcc: it is a master alternative
。 - thargy在Ubuntu 20.04上,我按照这里的说明进行了操作:
操作步骤如下:
通过向 /etc/apt/sources.list 添加一行来更新列出的镜像站点,例如:
sudo add-apt-repository 'deb http://mirrors.kernel.org/ubuntu hirsute main universe'
从列表中选择一个基于你所在位置的镜像站点。由于我位于北美,我选择了 kernel 镜像站点。
sudo apt-get update
sudo apt-get install gcc-11
完成后,which gcc-11
应该会输出 gcc-11 的路径。在我的机器上,它是:
which gcc-11
生成:/usr/bin/gcc-11
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
目前我们没有关于何时会发布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。
然后,解压tarball文件:
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。
--enable-multilib
选项,您必须拥有 multilib。使用 sudo apt install gcc-multilib
安装它。我也已经将其添加到答案中了。 - user15770830
ubuntu:jammy
配备了gcc-11
和g++-11
(请参见 https://packages.ubuntu.com/search?keywords=gcc-11)。 - mirekphd