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

相關文章
相關標籤/搜索