本次作为一个成功解决的记录:
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’not found
从各方网站查询可得:
strings /lib64/libstdc++.so.6 | grep GLIBC查看C++版本
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
说明gcc的动态库还是老版的,需进行升级。
**解决方法一:**下载gcc的高版本重新编译安装
**解决方法二:**只下载一个已经编译好的动态库libstdc++.so.6.0.21
//将该文件拷贝到指定位置
cp libstdc++.so.6.0.21 /lib64
//删除原来的动态库
cd /lib64
rm -rf libstdc++.so.6
//建立新的软连接
ln -s libstdc++.so.6.0.21 libstdc++.so.6
//再次查看
strings /lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
/libc.so.6: version `GLIBC_2.17’ not found
查询版本:
[root@localhost build]# strings /lib64/libc.so.6 |grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
可见,确实版本不足。
解决方法一:
- glibc下载
从http://www.gnu.org/software/libc/ 下载源代码。我下载的版本是2.14,链接地址是http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。 - 安装
因为glibc库使用广泛,为了避免污染当前系统环境,最好自定义安装目录,使用时定义一下环境变量就行了。具体步骤如下:
[root@localhost ~]# tar xvf glibc-2.17.tar.gz
[root@localhost ~]# cd glibc-2.17
[root@localhost glibc-2.17]# mkdir build
[root@localhost glibc-2.17]# cd ./build
[root@localhost build]# ../configure --prefix=/opt/glibc-2.17
[root@localhost build]# make -j4
[root@localhost build]# make install
// 先删除先前的libc.so.6软链
[root@localhost build]# rm -rf /lib64/libc.so.6
[root@localhost build]# ln -s /opt/glibc-2.17/lib/libc-2.17.so /lib64/libc.so.6
如果上述命令建立软连接失败,尝试
LD_PRELOAD=/opt/glibc-2.17/lib/libc-2.17.so ln -s /opt/glibc-2.17/lib/libc-2.17.so /lib64/libc.so.6
如果上述更新仍然失败,先还原
$LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so 此项是系统升级前的版本
至此,我败了。。然后想出了第二条路径
解决方法二:
下载rpm版安装包。
rpm -ivh glibc-headers-2.17-222.el7.x86_64.rpm --nodeps --force
rpm -ivh glibc-2.17-222.el7.x86_64.rpm --nodeps --force
–nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了。–force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装
安装成功…