libstdc++.so.6版本过低致使***-Qt5没法启动

这个错误断断续续弄了一天,ss起不来,不能用Google,搜索低效。linux

 

问题描述

启动ss报错以下:c++

wy@lenovo /usr/lib/x86_64-linux-gnu $ ~/Downloads/***-Qt5-3.0.0-x86_64.AppImage
ss-qt5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9'not found (required by/tmp/.mount_Shadowr7E0wX/usr/lib/libQt5Widgets.so.5)
ss-qt5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/.mount_Shadowr7E0wX/usr/lib/libQt5Network.so.5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/.mount_Shadowr7E0wX/usr/lib/libQt***.so.2)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21'not found (required by/tmp/.mount_Shadowr7E0wX/usr/lib/libQt***.so.2)
ss-qt5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/.mount_Shadowr7E0wX/usr/lib/libQt5DBus.so.5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/.mount_Shadowr7E0wX/usr/lib/libQt5Gui.so.5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9'not found (required by/tmp/.mount_Shadowr7E0wX/usr/lib/libQt5Core.so.5)
ss-qt5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.mount_Shadowr7E0wX/usr/lib/libQt5Core.so.5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.mount_Shadowr7E0wX/usr/lib/libbotan-2.so.3)

 

一开始没动脑子,直接复制了第一行错误开始搜索。 
其实仔细一想,这么多错误,就说明了两个信息:ui

  • version 错误
  • GLIBCXX_3.4.21  CXXABI_1.3.9 这两个版本找不到

出现该错误的缘由是当前的GCC版本中,没有GLIBCXX_3.4.21和CXXABI_1.3.9。查看libstdc++.so.6 所支持的GLIBCXX和CXXABI:spa

lenovo Downloads# strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
...
...
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.18
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
lenovo Downloads# strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_TM_1

 

发现正好没有咱们须要的GLIBCXX_3.4.21  CXXABI_1.3.9 这两个版本。这个LMDE 2 仍是有点老了。.net

解决

从debian package官网下载最新版的libstdc++.so.6 
https://packages.debian.org/sid/libstdc++6 
注意区分64位和32位。code

# 解压文件
$ ar -x libstdc++6_8-20180414-1_amd64.deb
$ tar -xJvf data.tar.xz
# 复制到lib,创建软链接
$ sudo cp usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25/usr/lib/x86_64-linux-gnu/
$ sudo ln -si libstdc++.so.6.0.25 libstdc++.so.6
# 验证版本
wy@lenovo /usr/lib/x86_64-linux-gnu $ strings libstdc++.so.6| grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
...
...
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGTH
# 可见新版一直支持到了3.4.25

 

 

 

ref: https://blog.csdn.net/skykingf/article/details/8774339orm

相关文章
相关标签/搜索