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

Xp.*_*p.L 10 libstdc++ ubuntu-16.04

要在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
Run Code Online (Sandbox Code Playgroud)

我跟着一些线程,创建了一个链接/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
Run Code Online (Sandbox Code Playgroud)

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

谢谢,Xp

Kri*_*rya 19

这是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
Run Code Online (Sandbox Code Playgroud)

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

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
Run Code Online (Sandbox Code Playgroud)

  • 这个对我有用,Linux Mint(Ubuntu Xenial 16.04)。特别是,我在升级到 FileZilla 3.30.0 后遇到了这个问题,它不再运行,所以希望任何需要这条评论的人都能找到它。 (2认同)

Flo*_*mer 6

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

  • 我在 Ubuntu 上使用 XAMPP 也遇到了同样的问题。将“libstdc++.so.6”重命名为“libstdc++.so.6_old”就可以了。真的非常感谢 (2认同)

okl*_*las 5

我解决了这样的问题(但在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
Run Code Online (Sandbox Code Playgroud)

(完整版本列表在这里

它与如何安装gcc无关-它可以从软件包中安装,也可以从源代码中进行编译和安装。

系统gcc库可能可用,而不是新安装的。因此,需要指定环境变量在哪里可以找到例如图书馆这样的命令行:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
Run Code Online (Sandbox Code Playgroud)

  • 我通过使用以下命令更新链接“/usr/lib64/libstdc++.so.6”以指向我在“/usr/local/lib64/libstdc++.so.6”的较新版本来永久修复此问题:“ln - fs /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6`。如果您需要恢复,旧版本仍然没有指向它的链接。有点黑客,但它有效。 (2认同)
  • 那个 GNU 参考救了我的命!真的很感激! (2认同)
  • 要永久配置,请在 sh/bash/zsh/csh/... 配置文件或系统 make.conf 中设置变量 LD_LIBRARY_PATH,当然 Windows 用户可以使用其方便的界面。 (2认同)