我最近将我的 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
不起作用。有没有办法在最新版本的 Ubuntu 20.04 上安装 gcc-5(和 gcc-4)?似乎我必须以某种方式安装仅在早期版本(例如 16.04 或 18.04)中可用的软件包。
答案1
正如评论部分所述,xenial 存储库中仍然提供低于 7 的 GCC 版本。您可以按照以下步骤安装 gcc-5:
- 添加
xenial
/etc/apt/sources.list
使用 sudo 打开 sources.list
sudo vim /etc/apt/sources.list
在 sources.list 文件中添加以下行
德布http://dk.archive.ubuntu.com/ubuntu/xenial 主要
debhttp://dk.archive.ubuntu.com/ubuntu/西尼尔宇宙
sudo apt update
sudo apt install g++-5 gcc-5
参考答案:在 ubuntu 18.04 上安装 gcc 4.9
要将默认 gcc 版本更改为 gcc 5,您可以按照以下步骤操作关联。下面我添加了一些步骤以确保完整性。
sudo 更新替代方案 --install /usr/bin/gcc gcc /usr/bin/gcc-5 5 sudo
更新替代方案 --install /usr/bin/g++ g++ /usr/bin/g++-5 5
然后手动选择正确的版本,如下所示:
sudo 更新替代方案 --config gcc
sudo 更新替代方案 --config g++
如果您发现这个答案有帮助,还请考虑对参考答案投赞成票,我的大部分答案都是借用的。
答案2
这仅有的对我有用的解决方案是:
手动安装 .deb 包
(悲伤的程序员声音)
- 去http://old-releases.ubuntu.com/ubuntu/pool/universe/g/
- 下载您想要的 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
- 通过运行命令 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
等等...
检查有关包依赖关系的控制台输出错误以确定包的安装顺序。
- 如果您遇到有关“g++...”包与“libstdc++...”包的交叉依赖的错误(可能是 bug),然后运行 install 命令以使用精确的版本号更新 libstdc++ 包,例如:
sudo apt-get install libstdc++6
- 万岁!使用安装的 gcc (g++) 版本,fe:
g++-3.4 -v
PS:如果你遇到缺少库的错误,请尝试
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
建造前