原因:组件版本太低
第一步:升级GCC
下载了最新的6.2.0版本
wget http://gcc.parentingamerica.com/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2
gcc安装文件下载完成后,执行以下命令解压文件:
tar -xf gcc-6.2.0.tar.bz2
解压完成后,执行以下命令进入工作目录:
cd gcc-6.2.0
执行download_prerequisites脚本,下载gcc依赖文件和库:
./contrib/download_prerequisites
#download_prerequisites脚本,会下载安装gcc所需的mpfr、gmp和mpc文件。
建立一个输出目录,编译时所有生成的中间文件都放到该目录下:
mkdir build
工作目录切换至输出目录,并在其中执行配置和安装:
cd build
执行configure配置安装文件:
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
配置完成后,执行以下命令,编译gcc:
make -j 6
编译完成后,安装gcc:
make install
安装完成后还需要替换系统默认的gcc,执行以下命令,查找6.2版本的安装文件:
第二步:升级GLIBCXX
注意,进入GCC编译输出目录,.libs是隐藏的:build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
用下面的命令查看:
strings libstdc++.so.6.0.22|grep GLIBCXX
一般来讲,里面就有满足需要的GLIBCXX版本了。
然后,把该文件拷贝到了/usr/lib64下.
然后将libstdc++.so.6指向libstdc++.so.6.0.22:
这一步一定要在ROOT权限下执行。
rm -r libstdc++.so.6
rm: remove symbolic link `libstdc++.so.6'? y
ln -s libstdc++.so.6.0.18 libstdc++.so.6
这就Ok了。