详解ubuntu 16.04 LTS 降级安装gcc 4.8

(编辑:jimmy 日期: 2025/6/17 浏览:2)

由于gcc在5.x版本修改了ABI,导致新版本gcc编译的二进制文件放在老的环境下会报错,所以需要安装gcc4.8.5。4.8.5这个版本支持c++11。

首先尝试下载gcc-4.8.5的源码编译安装,结果make时报错“libstdc++.so.6: : version `CXXABI_1.3.8' not found”。查了一下,不能用新版gcc来编译老版的gcc源码,(╯‵□′)╯︵┻━┻。

其实,在ubuntu上安装老版gcc十分简单,直接用apt-get命令下载即可。

第一步:

sudo apt-get install gcc-4.8

输入密码,同意安装,接下来就自动下载安装4.8.5版本了。

第二步:设置默认的gcc版本

gcc --version

(可选)查看当前版本,不出意外的话会返回ubuntu16.04自带的5.4.0这个版本号,现在使用gcc命令编译时还是会用新版本。

 ls /usr/bin/gcc*

(可选)查看已有的gcc版本,确认一下刚才4.8.5有没有装成功。

 

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 
100

将某个版本加入gcc候选中,最后的数字是优先级,我自己是直接设为100,没任何问题。

 接着输入:

sudo update-alternatives --config gcc

如果用过此方法配置过多个gcc版本,会看到如下选项:(注:复制于参考文献【2】,这里只是做个说明示范,实际装4.8时不会如下显示)

选择     路径   优先级  状态
------------------------------------------------------------
* 0   /usr/bin/gcc-4.4 50  自动模式
 1   /usr/bin/gcc-4.4 50  手动模式
 2   /usr/bin/gcc-4.5 40  手动模式
 3   /usr/bin/gcc-4.6 30  手动模式

大多数情况是没有这么配置过,所以不会给选项,命令行会返回“仅有一个可用的gcc版本”(大意)。此时在运行gcc --version查看版本,发现4.8.5已经为默认的gcc版本。

然后再按同样方法装上g++,如果只装gcc的话,用cmake配置出来的项目遇到c++代码还是会用之前版本的gcc。

大功告成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?