ubuntu 16.04 LTS 降级安装gcc 4.8

因为gcc在5.x版本修改了ABI,致使新版本gcc编译的二进制文件放在老的环境下会报错,因此须要安装gcc4.8.5。4.8.5这个版本支持c++11。linux

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

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

第一步:spa

sudo apt-get install gcc-4.8

输入密码,赞成安装,接下来就自动下载安装4.8.5版本了。命令行

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

gcc --version

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

 

ls /usr/bin/gcc*

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

 

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

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

 

接着输入:get

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。

大功告成。

 

参考文献:

【1】http://www.bbsmax.com/A/qVdeXvMM5P/

【2】http://www.linuxidc.com/Linux/2012-10/72284.htm

相关文章
相关标签/搜索