Ubuntu或Debian中安装老版本的gcc

Ubuntu或Debian中安装老版本的gcc

最近碰到C++中老版本的属性初始化问题,在新版本的gcc中无法复现,所以,需要安装老版的gcc-4.8.5,但是直接安装,源里面是没有的。
要安装只能自己手动去下载对应的.deb安装包(很多Ubuntu和Debian的安装包.deb是可以共用的)。

deb安装包搜索网站

https://pkgs.org/

非移动手机,或者Mac新的arm芯片的,选择amd64版本的:

点进去会发现有多个栏目,其中有一个是依赖,这个是全部的依赖,但有可能有些lib,操作系统已经安装过了,就不用下载了,所以,可以直接跳到下面的下载栏目,先下载安装,然后看提示缺什么再下载什么:

复制这个下载链接,然后用 wget 命令进行下载:

wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8_4.8.5-4ubuntu8_amd64.deb'

然后,用安装命令进行尝试,提示报错缺什么再用相同的办法下载什么:

sudo dpkg -i gcc-4.8_4.8.5-4ubuntu8_amd64.deb

gcc-4.8.5所缺的.deb

wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/cpp-4.8_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/libasan0_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/g++-4.8_4.8.5-4ubuntu8_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.8/libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb'

安装顺序

sudo dpkg -i libasan0_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i cpp-4.8_4.8.5-4ubuntu8_amd64.deb gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i gcc-4.8_4.8.5-4ubuntu8_amd64.deb
sudo dpkg -i libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb g++-4.8_4.8.5-4ubuntu8_amd64.deb

使用update-alternatives管理多个版本gcc

  • 设置
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
 
# 48,100这些表示的是优先级,可根据需要选定,优先级高的即为默认的。
  • 选择
sudo update-alternatives --config gcc

根据提示,选择1或者2即可,非常方便。

参考:

https://blog.csdn.net/uniqueyyc/article/details/85407693

posted @ 2023-01-15 19:37  yangwen0228  阅读(1172)  评论(0编辑  收藏  举报