Centos7默认编译器版本:
gcc5.1之前的编译器,默认是C++98标准的,若是编译一些支持C++高版本的软件时,难免会出现问题。例如:编译最新版jsoncpp,会有如下问题:(原因是:std在C++98和C++11中略有不同,C++11对std进行了扩展)
升级编译器
yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
需要安装哪个版本的gcc/g++,就把数字替换成对应的版本号。
例如:gcc11 和 g++11
yum -y install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
scl enable devtoolset-7 bash 启用 devtoolset-7 软件集和,此时使用 g++ --version 以及 gcc --version 命令就会发现我们的 gcc g++ 已经完成了升级。
但是scl命令的作用只是暂时的,如果要长久生效,我们就需要写入到配置文件中:
echo "source /opt/rh/devtoolset-11/enable" >>/etc/profile