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

zhourrr 2018-11-25

前言

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

在编译一些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年来第一次重大修正。


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

哪个版本的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

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


总结

如果我们升级的gcc导致有些程序无法执行需要回退,可以直接删除环境变量即可。

¥47.84
领2元券

相关推荐