如何g++12
在 Ubuntu 20.04.6 上安装?
我在谷歌上尝试了几种方法,但似乎都没有用。
答案1
这个问题已经由@Marcus Müller 回答在 Unix 和 Linux 问题中如何在 Ubuntu 20.04 上安装 g++12?本质上,Marcus Müller 说的是它可能可以g++12
在 Ubuntu 20.04 上安装,但这很难做到,所以强烈建议你使用更高版本的 Ubuntu,例如 22.04,它支持g++12
。
我在下面引用了整个答案:
如果您正在考虑更新到较新的长期支持 (LTS) 版本的 Ubuntu,那么现在可能是个好时机:Ubuntu 22.04LTS 允许您使用 来安装 GCC 12 的 g++
apt install g++-12
,就完成了。我预测,除非您有很多软件依赖于过时的依赖库,否则更新您的 Ubuntu 可能是获得 的最简单方法!(您可以在或容器g++12
中轻松尝试,这里我就不多说了。)podman
docker
如果您坚持使用 Ubuntu 20.04,我想最干净、最直接的方法是
g++12
尝试反向移植 22.04g++12
软件包。在这种情况下,您不必担心学习如何构建 GCC,以及如何安装竞争的 g++,它不会通过干扰现有编译器甚至更糟糕的 ABI 而破坏您的整个系统。Debian(以及作为其下游的 Ubuntu)承担了学习这一工作量,您只需要使用他们的工具。太棒了!粗略地说,执行此操作的程序如下:
准备构建 Debian/Ubuntu 包:
sudo apt update sudo apt install -y build-essential fakeroot dpkg-dev devscripts cmake debhelper-compat dh-python equivs
获取软件包源。您需要
.dsc
在包页面:mkdir gcc-12 cd gcc-12 dget -u https://URL/OF/DSC/FILE.dsc
从以下位置安装构建依赖项
.dsc
:mk-build-deps -i gcc-12*.dsc
构建软件包:
cd gcc-12-somethingsomething dpkg-buildpackage -us -uc -ui -d
理论到此结束。实际上,步骤 3 将失败 – GCC12 所依赖的工具版本在 Ubuntu 20.04 中实在是太旧了。特别是,Debian 软件包说您至少需要
g++11
>binutils
= 2.37。这才是真正的关键我亲自说“如果我构建的某个软件需要最先进的 C++ 编译器,那么它无论如何都不会适合我的 Ubuntu 20.04 环境,我需要更新到更现代的 Ubuntu”.所以,再说一遍这是我的建议;更新至 Ubuntu 22.04, 进而
apt install g++-12
。如果你想忍受麻烦,你将开始修改
gcc-12-12.*/debian/control
和rules.conf
文件rules2
以依赖于一些g++
相反g++11
,禁用 ADA 支持,降低要求binutils
等等。但是,您可以肯定 Debian 的开发人员已经考虑过要使用哪些版本的依赖项,以及要包含哪些修复和反向移植。这是一条崎岖的道路。可能比“裸”源代码构建要顺利一些,但这是一种比您预期的更轻松地了解 GCC 的方法,并且只需花几个小时就可以开始构建。
老实说,我一直在重复:如果你突然发现自己需要一个现代编译器,那么现在是时候更新到现代环境了。这会带来更少的痛苦和更多的好处。