g++ (gcc) 11 可以在 Debian Bullseye 上使用吗?

13 c++ debian gcc clang c++20

g++ (gcc) 11.1 可以在 Debian Bullseye 上使用吗?

Debian 11 (bullseye) 即将发布,我对具有 C++20 和模块支持的编译器感兴趣。

Debian 11 目前有 gcc 10.2 和 clang 11。clang 11 有一些 C++20 支持。

Debian 是否对 gcc 比 clang 更保守,因为操作系统使用 gcc?

kar*_*rel 5

由于 Ubuntu 19.04 已达到其生命周期,下一段中的链接已过时,因此我建议本答案的读者参考更一般的情况,该情况适用于基于 Debian 的操作系统中的所有 gcc 用户。有关在基于 Debian 的操作系统中安装非标准版本的 gcc 和 g++ 的更多信息,请参阅此答案


在这里,来自默认 Ubuntu 存储库的g++-11已准备好安装在 Debian Bullseye 中,并且此页面列出了该包的依赖项。

打开终端并输入:

cd ~/Desktop/
wget http://security.ubuntu.com/ubuntu/pool/universe/g/gcc-11/g++-11_11.1.0-1ubuntu1~21.04_amd64.deb
apt install --simulate ./g++-11_11.1.0-1ubuntu1~21.04_amd64.deb
Run Code Online (Sandbox Code Playgroud)

最后一个命令将返回缺少的依赖项的列表,可以在此网页上找到该列表。手动下载并安装完所有缺失的依赖包后,安装g++-11包的命令如下:

sudo apt install ./g++-11_11.1.0-1ubuntu1~21.04_amd64.deb 
Run Code Online (Sandbox Code Playgroud)

这些apt install --simulate命令一开始肯定会产生 unmet dependency 错误,因为 Debian Bullseye 默认存储库不包含 gcc-11 依赖包(gcc-10 是最新版本),但它们会显示缺少依赖包的列表。如果您反复进行操作,您将能够安装所有这些缺少的依赖包,以便最终sudo apt install ./g++-11_11.1.0-1ubuntu1~21.04_amd64.deb运行时不会出现错误。