解决CentOS中gcc版本过低的问题

百度首页登录
解决CentOS中gcc版本过低的问题


linux运维菜
发布时间:18-11-2623:15优质原创作者
前言

在编译一些C/C++的程序的时候,经常会遇到unrecognized command line option "-std=c++11",这个提示是因为gcc不支持c++11。

什么是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年来第一次重大修正。


哪个版本的gcc开始支持c++ 11 ?

gcc 4.7。

因此,如果我们代码里面需要用到c++标准的,就必须将gcc升级到gcc4.7以上。


如何升级?

如果直接升级了系统自带的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导致有些程序无法执行需要回退,可以直接删除环境变量即可。

作者最新文章
使用openssl生成https证书
几种编程语言获取程序所在路径的方法
linux - netcat网络工具-nc
相关文章
这3个高级Python函数,你还不知道?

CentOS7安装MySQL8.0图文教程(相对最齐全)

MySQL 8.0 多线程 load data infile

GitHub年度报告:Python首次击败Java,中国成第二大开源贡献国

微软代码女神潘正磊:程序员跟年龄关系真不大


设为首页© Baidu 使用百度前必读 意见反馈 京ICP证030173号 
京公网安备11000002000001号

你可能感兴趣的:(linux)