libstdc ++。so.6:版本`GLIBCXX_3.4.20'未找到

时间:2017-06-27 06:09:12

标签: ubuntu-16.04 libstdc++

上传原始读取>在Genebank上2GB到SRA,我在ubuntu 16.04上安装了aspera connect插件。但是插件并没有像genebank SRA门户网站上的说明那样弹出。

我在本地初始化插件(~/.aspera/connect/bin/asperaconnect)时在终端上出现此错误:

lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/x86_64-linux-gnu/libproxy.so.1)
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so

我关注了一些主题,创建了指向/usr/lib/libstdc++.so.6 的链接但是它没有解决问题,仍显示上面的错误消息。 正在运行strings /usr/lib/libstdc++.so.6 | grep GLIBCXX

strings /usr/lib/x86_64-linux-gnu/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_DEBUG_MESSAGE_LENGTH

GLIBCXX_3.4.20在列表中。我不知道如何使插件识别出来。

谢谢你, XP

5 个答案:

答案 0 :(得分:18)

这是Ubuntu 16.04中解决此问题的解决方案

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get upgrade libstdc++6

您可以检查是否获得了这样的GLIBCXX所需版本:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

答案 1 :(得分:4)

考虑到Ubuntu提供/usr/lib/x86_64-linux-gnu/libproxy.so.1,我们假设它与系统libstdc ++库兼容。这意味着应用程序实际上并未使用该系统库,而是使用其他一些版本。我建议检查应用程序是否设置LD_LIBRARY_PATH以及该路径上是否有libstdc++.so.6的另一个副本。在这种情况下,尝试将其移走或删除它 - 应用程序应该切换到更新的系统库,并且应该向后兼容。

答案 2 :(得分:3)

我解决了这样的问题(但是在CentOS上是GLIBCXX_3.4.21),但它并不依赖于os。该库是gcc编译器的一部分,因此需要安装或编译gcc的适当版本。这是gcc版本表和相应libstdc++的版本:

GCC 4.9.0: libstdc++.so.6.0.20
GCC 5.1.0: libstdc++.so.6.0.21
GCC 6.1.0: libstdc++.so.6.0.22
GCC 7.1.0: libstdc++.so.6.0.23
GCC 7.2.0: libstdc++.so.6.0.24
GCC 8.0.0: libstdc++.so.6.0.25

(完整版本列表为here

它不依赖于如何安装gcc - 它可以从包中安装,也可以从源代码编译和安装。

有可能系统gcc库可用而不是新安装。因此需要指定环境变量在哪里查找库,例如在命令行中:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...

答案 3 :(得分:1)

回答懒惰的人 这应该可以解决大多数情况下的情况

apt-get update && apt-get install sudo && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y && \
sudo apt-get update && \
sudo apt-get install gcc-snapshot -y && \
sudo apt-get update && \
sudo apt-get install gcc-6 g++-6 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 && \
sudo apt-get install gcc-4.8 g++-4.8 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 && \
sudo update-alternatives --config gcc && \
sudo apt-get update && \
sudo apt-get install cmake -y;

答案 4 :(得分:0)

在安装h3时我也遇到了这个问题。 oklas的答案对我有所帮助,但扩展了该答案。 具有“ conda install -c anaconda gcc”的gcc版本是4.8.5。它与libstdc ++。so.6.0.22不兼容。因此,我卸载了它并安装了特定版本的gcc(版本6),它解决了我的问题。