Ubuntu 20.04 - gcc 版本低于 gcc-7

V-R*_*Red 8 gcc 20.04

我最近将我的 Ubuntu 版本升级到最新的 20.04 版本。我的一些早期项目(在 16.04 上开发)使用 gcc 版本 5 (gcc-5.4.0) 编译得很好。

Ubuntu 20.04 中的默认版本是 gcc-9。我正在尝试将我的 gcc 版本切换到 5。我已经阅读了几篇文章,例如如何在 Ubuntu 18.04 上构建和安装 gcc-5.4.0?以及如何选择默认的 gcc 和 g++ 版本?,但事实是 gcc-5 软件包甚至不适用于 20.04(请参阅https://packages.ubuntu.com/search?keywords=gcc-5)。

正如预期的那样,命令

sudo apt install gcc-5  
Run Code Online (Sandbox Code Playgroud)

不起作用。有没有办法在最新版本的 Ubuntu 20.04 上安装 gcc-5(和 gcc-4)?似乎我必须以某种方式安装仅在早期版本(例如 16.04 或 18.04)中可用的软件包。

ayu*_*ain 17

正如评论部分所述,低于 7 的 GCC 版本在 xenial 存储库中仍然可用。您可以按照以下步骤安装gcc-5:

  1. 添加xenial/etc/apt/sources.list

使用 sudo 打开sources.list

sudo vim /etc/apt/sources.list

在sources.list文件中添加以下行

deb http://dk.archive.ubuntu.com/ubuntu/ xenial 主
deb http://dk.archive.ubuntu.com/ubuntu/ xenial Universe

  1. sudo apt update
  2. sudo apt install g++-5 gcc-5

参考答案:在ubuntu 18.04安装gcc 4.9

要将默认 gcc 版本更改为 gcc 5,您可以点击此链接。为了完整性,我在下面添加了步骤。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 5
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 5

然后手动选择正确的版本,如下所示:

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

如果您觉得这个答案有帮助,还请考虑对参考答案进行投票,我的大部分答案都是借用的。


Ale*_* G. 1

对我有用的唯一解决方案是:

手动安装 .deb 软件包

(悲伤的程序员噪音)

  1. 转到http://old-releases.ubuntu.com/ubuntu/pool/universe/g/
  2. 下载您想要的 gcc 编译器版本的所有 .deb 软件包,例如:
gpc-2.1-3.4_3.4.6-6ubuntu5_amd64.deb
cpp-3.4_3.4.6-6ubuntu5_amd64.deb       lib32g2c0_3.4.6-6ubuntu5_amd64.deb
g++-3.4_3.4.6-6ubuntu5_amd64.deb       libg2c0_3.4.6-6ubuntu5_amd64.deb
g77-3.4_3.4.6-6ubuntu5_amd64.deb       libg2c0-dev_3.4.6-6ubuntu5_amd64.deb
gcc-3.4_3.4.6-6ubuntu5_amd64.deb       libstdc++6-dbg_3.4.6-6ubuntu5_amd64.deb
gcc-3.4-base_3.4.6-6ubuntu5_amd64.deb  libstdc++6-dev_3.4.6-6ubuntu5_amd64.deb
Run Code Online (Sandbox Code Playgroud)
  1. 通过运行命令 fe 手动安装它们:
sudo dpkg -i ./gcc-3.4-base_3.4.6-6ubuntu5_amd64.deb 
sudo dpkg -i ./cpp-3.4_3.4.6-6ubuntu5_amd64.deb
sudo dpkg -i ./gcc-3.4_3.4.6-6ubuntu5_amd64.deb
Run Code Online (Sandbox Code Playgroud)

等等...

检查有关包依赖项的控制台输出错误,以确定包安装顺序。

  • 如果您遇到有关“g++...”包与“libstdc++...”包和 vv 的交叉依赖性的错误(可能是错误),然后运行安装命令以使用确切的版本号更新 libstdc++ 包,fe:
sudo apt-get install libstdc++6
Run Code Online (Sandbox Code Playgroud)
  1. 万岁!使用已安装的 gcc (g++) 版本,fe:
g++-3.4 -v
Run Code Online (Sandbox Code Playgroud)

PS:如果您遇到缺少库错误,请尝试

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

构建之前