1

我想尝试一些非常新的 C++20 特性。其中一些仅受 GCC10 支持。不幸的是,最新版本是 GCC9.3,所以我需要使用未发布的 GCC10 版本。

我做了以下安装它:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install gcc-10 g++-10

这工作得很好。但是我无法将其设为默认编译器。像往常一样,我尝试了:

sudo update-alternatives --config gcc

这表明没有其他选择。为什么?

4

1 回答 1

1

您可以手动执行此操作:

cd /usr/local/bin
sudo ln -s /usr/bin/gcc-10 gcc
sudo ln -s /usr/bin/g++-10 g++

然后打开一个新的终端窗口,gcc 应该是指 gcc-10。它应该适用于简单的情况。如果没有,您将必须为所有 GCC 10 ecutables 和库创建所有适当的符号链接......

我认为最好的选择是自己编译 GCC 10 并将其安装在您的主目录中。这就是我在极简的 Gentoo 安装中所做的,我想它也可以在 Ubuntu 上运行:

mkdir ~/src
cd ~/src
git clone https://github.com/gcc-mirror/gcc.git
mkdir gcc_build
cd gcc_build
../gcc/configure --enable-libsanitizer --prefix=~/usr --with-gcc-major-version-only --disable-bootstrap --enable-language=c,c++,lto
make -j16
make install -j16

编译可能会持续大约 10 分钟。考虑调整-j16选项以适应您的机器:这是同时启动的作业数make。使用 CPU 支持的两倍数量的并行线程是一个不错的选择。然后将适当的环境变量添加到您的~/.bashrc文件中:

export LD_LIBRARY_PATH=~/usr/lib64:~/usr/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=~/usr/lib64:~/usr/lib:$LIBRARY_PATH
export LD_RUN_PATH=~/usr/lib64:~/usr/lib:$LD_RUN_PATH
export PATH=~/usr/bin:$PATH

当您不想再使用 gcc-10 时,注释掉这些行并打开一个新终端。

于 2020-04-30T05:28:46.983 回答