找不到GLIBCXX_3.4.20,如何解决此错误?


104

乳清,我尝试在Ubuntu 14.04.1 64位LTS上运行程序Layout Editor该站点上提供),我在终端中得到以下输出:

$ layout
layout: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by layout)

我试着命令strings/usr/lib/x86_64-linux-gnu/libstdc++.so.6如下,这里是输入和输出:

$ 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_DEBUG_MESSAGE_LENGTH

我如何解决此问题,我以某种方式猜测它与之相关,GCC但无法弄清楚如何解决该问题。此外,我尝试了如何在Ubuntu上使用最新的GCC上建议的PPA 对于GLIBCXX_3.4.15的较旧版本的Ubuntu,也存在类似的问题。但是,在运行之后,sudo update我得到了许多警告,并且在安装后通过strings命令获得的列表没有新条目gcc 4.9,因此我使用清除了PPA(工具链测试构建ppa-purge。任何帮助,有关如何进行的建议,我们将不胜感激。


已经找到解决方案?
史蒂文·罗斯2015年

1
@StevenRoose添加了一些反向端口并安装了一些软件之后,我能够解决该问题,但是当我记住这些细节时,我将不会清楚地记得这些细节,因此我会将它们发布为答案。
Vesnog,2015年

看来这是符号链接的影响:stackoverflow.com/questions/2856438/…您只是没有足够近地链接到库版本。
Ciro Santilli新疆改造中心法轮功六四事件

Answers:


102

尝试运行其他程序时遇到相同的问题,并在StackOverflow上找到了解决方案。

基本上,只需执行以下命令:首先,安装:

sudo apt-get install libstdc++6

默认情况下应该已经安装了该软件,但是仍然可以尝试。如果无法解决问题,请执行以下操作:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

我没有执行“ dist-upgrade”命令,但是之前的命令已经为我解决了


6
sudo apt-get dist-upgrade解决了我的问题
2015年

2
解决了问题,无需dist-upgrade按照upgrade建议进行操作,并使用最新版本更新了我的系统libstdc++
arainone '16

2
我最终需要添加存储库,“更新”和“ dist-upgrade”。
virtualxtc

5
更新后,您可以将GLIBCXX的最新版本检查为strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
Krishan Kumar Mourya

1
Ubuntu 16.04:在2017年11月,通过add- 添加了'不受信任且不受支持的' ppa:ubuntu-toolchain-r / test- apt-repository更新/usr/lib/x86_64-linux-gnu/libstdc++.so.6到GLIBCXX_3.4.24(包括GLIBCXX_3.4.24)-此外,这还将更新basicall所有c / c ++ / fortran您机器上的开发工具
knb

60

anaconda 4.0.0(如@mjp所述)发生在我身上,但对我而言,解决方法是在我的环境中运行以下命令:

conda install libgcc

6
在尝试了其他线程的许多解决方案后,这为我解决了问题。
肖恩·安德森

3
也可以在Ubuntu 16.04上使用
fviktor

1
这确实节省了我很多次!
MBZ

Ubuntu 16.04-为我解决了。
朱巴卜

这是更好的..为我工作..试图在python中“导入根”
MycrofD

11

我遇到了这个问题-这是因为Anaconda2没有任何东西的GLIBCXX_3.4.20版本。与您一样,最多只能为0.19。

但是,Ubuntu的库中确实有它。因此,我只是在Anaconda库中创建了一个到包含该GLIBCXX_3.4.20的实际Linux库的软链接/快捷方式,替换了先前的库,并且在重新启动python GUI(Spyder)之后它运行良好。

libstdc++.so.6Anaconda库中应该有一个名为的文件夹,该文件夹位于:~/anaconda2/lib。此文件夹中是脚本/库代码的版本,但不包括您所缺少的版本:GLIBCXX_3.4.20

请按照以下步骤解决问题:

  1. 转到正确的位置并备份您当前的anaconda2快捷方式(更改其名称,以免被覆盖):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. 使用ln命令创建一个新的快捷方式(我假设我在先前的位置〜/ anaconda2 / lib中):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. 重新启动spyder /您使用的其他界面

现在应该可以了!


对我来说是不够的,只是。所以重命名畅达,然后就发现操作系统版本而无需链接
明威塞缪尔

7

我在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

(完整版本列表在这里

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

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

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

我通过更新链接/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

多年来,我使用许多不同的软件包进行了无数次尝试。它始终可以通过以下方式解决:

sudo apt-get dist-upgrade

如果您的dist是可升级的,它将几乎总是关闭新的C ++库并重新配置某些东西,例如它们可以再次工作。该问题几乎总是由您的系统未指向正确的库引起的。就我而言,通常是由于指向库的交叉编译器版本引起的。


2

before_install:

#为了在运行带有SASS支持的“扩展”雨果时避免libstdc ++错误,需要此解决方法。

  • wget -q -O libstdc++6 http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
  • sudo dpkg --force-all -i libstdc++6

安装:

  • wget -q -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.46/hugo_extended_0.46_Linux_64bit.deb
  • sudo dpkg -i hugo.deb

我在这里找到了这个解决方案


1
sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/

5
欢迎来到Ask Ubuntu!我建议编辑此答案以将其扩展为有关此命令应实现的具体细节。(另请参阅“我如何编写一个好的答案?”,以获取有关在Ask Ask Ubuntu上认为哪些答案最有价值的一般建议。)
David Foerster,2015年

6
为什么cpln -s呢?
AB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.