请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需要一步,快速开始

搜索
开启左侧

处理CentOS中gcc版本过低的问题

马上注册,分享更多源码,享用更多功能,让你轻松玩转云大陆。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前言
在编译一些C/C++的程序的时候,经常会遇到unrecognized command line option "-std=c++11",这个提示是由于gcc不支持c++11。
rHYOLZJZ4Fobb4YD.jpg
什么是c++ 11?
C++11,(即ISO/IEC 14882:2011),是目前的C++编程语言的最新正式标准。它取代了第二版标准(第一版公开于1998年,第二版于2003年更新,分别通称C++98以及C++03,两者差异很小)。新的标准包含核心语言的新机能,而且扩展C++标准程序库。C++11新标准由C++标准委员会于2011年8月12日公布,并于2011年9月出版。此次标准为C++98发布后13年来第一次重大修正。
Ft65F6vHtvW1Dq8z.jpg
哪个版本的gcc开始支持c++ 11 ?
gcc 4.7。
因而,假如我们代码里面需要用到c++标准的,就必需将gcc更新到gcc4.7以上。
FG1zD97ab4G014Hu.jpg
如何更新?
假如直接更新了系统自带的gcc,有可能导致系统自带的程序出现不兼容的情况,导致系统崩溃。因而,更新的时候必需考虑自己设置目录,不能覆盖系统的路径下的gcc。
1、下载
mkdir -p /root/gcc
cd /root/gcc
wget -c http://mirror.koddos.net/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.bz2
2、解压
tar jxf gcc-4.8.5.tar.bz2
cd gcc-4.8.5
3、预下载依赖源码包
./contrib/download_prerequisites
配置编译文件
./configure --prefix=/opt/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib # 机器是64位的,就不使用32位的包了,--disable-multilib
5、编译
make -j4 #假如有多核CPU尽量都用上,要编译很久
6、安装
make install
7、添加环境变量
echo 'export PATH=/opt/gcc/bin:$PATH' >> /etc/profile
8、生效变量
source /etc/profile
9、查看版本
gcc -v
10、有些代码里面还会用到cc这个命令来调用gcc ,而我们自己编译的目录下没有cc这个执行程序,可以做个软链接就可以了。
cd /opt/gcc/bin && ln -s gcc cc
总结
假如我们更新的gcc导致有些程序无法执行需要回退,可以直接删除环境变量就可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

广告招商