在linux上有些场景下so提示glibcxx版本未找到,本因是编译的glibc版本和当前linux下的glibc不一致导致的

gcc

#glibc

1.问题描述

[root@centos-7-node3 ~]# hugo  --help
hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by hugo)
hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by hugo)
[root@centos-7-node3 ~]# hugo 
hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by hugo)
hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by hugo)
[root@centos-7-node3 ~]# yum provides libstdc++.so.6

2.问题解决

本文是利用高版本的rpm提取对应符合so,做软连接替换

2.1check package

[root@centos-7-node3 glibc-2.18]# yum whatprovides */libstdc++.so.6 
libstdc++-4.8.5-44.el7.i686 : GNU Standard C++ Library
Repo        : os
Matched from:
Filename    : /usr/lib/libstdc++.so.6

libstdc++-4.8.5-44.el7.x86_64 : GNU Standard C++ Library
Repo        : os
Matched from:
Filename    : /usr/lib64/libstdc++.so.6

2.2check version

//glibc version    el7 2.17.x  &&  el6 2.12.x

[root@centos-7-node3 ~]# 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
[root@centos-7-node3 ~]# 

2.3download new viersion

rpm2cpio libstdc++-8.3.1-5.1.el8.x86_64.rpm |cpio -idv   //extact files

[root@centos-7-node3 sb]# ll
total 452
-rw-r--r-- 1 root root 461772 Mar 31 09:49 libstdc++-8.3.1-5.1.el8.x86_64.rpm
drwxr-xr-x 5 root root     43 Mar 31 09:50 usr
[root@centos-7-node3 sb]# ll usr/lib64/
total 1624
lrwxrwxrwx 1 root root      19 Mar 31 09:50 libstdc++.so.6 -> libstdc++.so.6.0.25
-rwxr-xr-x 1 root root 1661376 Mar 31 09:50 libstdc++.so.6.0.25

stings usr/lib64/libstdc++.so.6.0.25 |grep GLIBCXX  //check support

cp usr/lib64/libstdc++.so.6.0.25   /usr/lib64/

cd /usr/lib64
rm -rf libstdc++.so.6
ln -sv libstdc++.so.6.0.25 libstdc++.so.6

reference