如何在 Ubuntu 20.04.6 上安装 `g++12`?

如何在 Ubuntu 20.04.6 上安装 `g++12`?

如何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中轻松尝试,这里我就不多说了。)podmandocker

如果您坚持使用 Ubuntu 20.04,我想最干净、最直接的方法是g++12尝试反向移植 22.04g++12软件包。在这种情况下,您不必担心学习如何构建 GCC,以及如何安装竞争的 g++,它不会通过干扰现有编译器甚至更糟糕的 ABI 而破坏您的整个系统。Debian(以及作为其下游的 Ubuntu)承担了学习这一工作量,您只需要使用他们的工具。太棒了!

粗略地说,执行此操作的程序如下:

  1. 准备构建 Debian/Ubuntu 包:

    sudo apt update
    sudo apt install -y build-essential fakeroot dpkg-dev devscripts cmake debhelper-compat dh-python equivs
    
  2. 获取软件包源。您需要.dsc包页面

    mkdir gcc-12
    cd gcc-12
    dget -u https://URL/OF/DSC/FILE.dsc
    
  3. 从以下位置安装构建依赖项.dsc

    mk-build-deps -i gcc-12*.dsc
    
  4. 构建软件包:

    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/controlrules.conf文件rules2以依赖于一些 g++相反g++11,禁用 ADA 支持,降低要求binutils等等。

但是,您可以肯定 Debian 的开发人员已经考虑过要使用哪些版本的依赖项,以及要包含哪些修复和反向移植。这是一条崎岖的道路。可能比“裸”源代码构建要顺利一些,但这是一种比您预期的更轻松地了解 GCC 的方法,并且只需花几个小时就可以开始构建。

老实说,我一直在重复:如果你突然发现自己需要一个现代编译器,那么现在是时候更新到现代环境了。这会带来更少的痛苦和更多的好处。

相关内容