Centos 升级 libstdc 库文件

0
libstdc++.so.6: version `GLIBCXX_3.4.20' not found

错误信息是由于gcc版本低导致的,Centos通过yum无法升级,标准方案是手动编译安装,但是gcc编译少要半个小时,腾讯云的云盘可能要编译几个小时,不过有个取巧的办法,可以手动下载debian的二进制文件,下载地址 http://ftp.de.debian.org/debian/pool/main/g/gcc-*/ 根据需要选择 i386.deb 与 amd64.deb ,lib目录下放的是32位,lib64目录下是64位,如果是在其他奇怪的目录可以通过 file 命令查看原文件是32还是64位。

高能预警!!!
glibc是linux系统的核心部分,系统的很多文件就是基于这个程序编译,以下操作可能会导致未知的后果,仅限开发阶段,生产环境万万不可以。

然后在debian下解压出需要的文件

cd /usr/lib[ro lib64]
chmod +x libstdc++.so.6.0.20
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.20 libstdc++.so.6

再检查一次看看

$ strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
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_DEBUG_MESSAGE_LENGTH

glibc

查看glibc版本

# 查看链接
ls -l /lib/libc.so.*
# ldd 返回glibc版本
ldd --version

编译 glibc

curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz 
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install

发表评论

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...