Linux CentOS错误 version `GLIBC_2.20‘ not found 错误 version `GLIBC_2.21‘ not found

最近在CentOS7.7上部署程序,程序启动的时候,出现如下错误:/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found
1)检查了gcc版本:gcc --version 得到结果gcc (GCC) 4.8.5 ;

gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 2015 Free Software Foundation, Inc.

2)strings /usr/lib64/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_DEBUG_MESSAGE_LENGTH

3)ll /usr/lib64/libstdc* 得到结果:

[root@iZ1rc2g27xoesiZ lib64]# ll /usr/local/lib64/libstdc*
-rw-r--r-- 1 root root 28969276 Aug 26 13:05 /usr/local/lib64/libstdc++.a
-rw-r--r-- 1 root root 10582932 Aug 26 13:05 /usr/local/lib64/libstdc++fs.a
-rwxr-xr-x 1 root root      905 Aug 26 13:05 /usr/local/lib64/libstdc++fs.la
-rwxr-xr-x 1 root root      965 Aug 26 13:05 /usr/local/lib64/libstdc++.la
lrwxrwxrwx 1 root root       19 Aug 26 13:05 /usr/local/lib64/libstdc++.so -> libstdc++.so.6.0.19
lrwxrwxrwx 1 root root       19 Aug 26 13:05 /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
-rwxr-xr-x 1 root root 11162608 Aug 26 13:05 /usr/local/lib64/libstdc++.so.6.0.19
-rw-r--r-- 1 root root     2397 Aug 26 13:05 /usr/local/lib64/libstdc++.so.6.0.19-gdb.py

可以看到,已经有libstdc++.so.6.0.19 ;没有libstdc++.so.6.0.20以及以上,这样就需要升级gcc版本

4) ls -al /usr/lib64/libstdc++.so.6 得到结果:

lrwxrwxrwx. 1 root root 30 11月 16 11:31 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.19

下面进行升级gcc到5.5.0

具体升级步骤:

1、源码http://ftp.gnu.org/gnu/gcc/,里面有各个版本,
我根据需要下载安装了gcc5.5.0
在Linux系统中下载用到命令行:wget http://ftp.gnu.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
2、下载好之后,解压文件:tar -jxvf gcc-5.5.0.tar.gz
3、解压完成,进入文件目录:cd gcc-5.5.0
4、利用源码包里自带的工具下载所需要的依赖项:./contrib/download_prerequisites //注意路径
5、创建编译输出目录(自定):mkdir build-gcc-5.5.0
6、进入输出目录:cd build-gcc-5.5.0;
生成Makefile:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib    release版本——使用支持C/C++——multilib感觉是生成多个库的意思?
7、编译:make -j4 //选项 -j4 是多核编译
8、编译完成后,安装:make install
9、检查一下是否安装成功:gcc -v //查看gcc版本 如下

Linux CentOS错误 version `GLIBC_2.20‘ not found 错误 version `GLIBC_2.21‘ not found_第1张图片

最后查询出libstdc++.so.6.0.21;然后进行

1)sudo cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64   //复制文件
2)sudo rm -rf /usr/lib64/libstdc++.so.6   //删除旧链接文件
3)sudo ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6   //链接到新版本

最后查看下结果:

 

你可能感兴趣的:(Linux,虚拟机,linux,centos,GLIBC_2.20)