linux 编译安装 提示 `GLIBCXX_3.4.20` not found

  • Post author:
  • Post category:linux


今天在给服务器升级cmake的时候

./configure 后提示以下内容

检查了gcc版本:gcc –version 得到系统当前的gcc库版本是7.1.0,已经是比较新的版本了


1、strings /usr/lib64/libstdc++.so.6 |grep GLIBCXX

[root@iZbp1g59px4c5r3b2f7cmsZ lib64]# 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_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH


2、sudo  find / -name  libstdc++.so.6* 得到结果:

[root@iZbp1g59px4c5r3b2f7cmsZ /]# sudo  find / -name  libstdc++.so.6*
/usr/lib64/libstdc++.so.6.0.13
/usr/lib64/libstdc++.so.6.0.23
/usr/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.23
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.23-gdb.py

可以看到,已经有libstdc++.so.6.0.23


3、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.13

说明虽然gcc已经更新到最新版,但是连接还是旧版本,所以只需要修改连接就可以了。

解决方案步骤:

1)sudo cp /usr/local/lib64/libstdc++.so.6.0.23 /usr/lib64  //复制文件

2)sudo rm -rf /usr/lib64/libstdc++.so.6  //删除旧文件

3)sudo ln -s /usr/lib64/libstdc++.so.6.0.23 /usr/lib64/libstdc++.so.6 //链接到新版本

本文参考链接:


https://www.cnblogs.com/twinhead/p/9248745.html

感谢