当前位置: 首页>>技术教程>>正文


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

, , , ,

问题描述

Whey我尝试在Ubuntu 14.04.1 64位LTS上运行程序布局编辑器(在this site上可用)我在终端中获得以下输出:

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

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

$ 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有关,但无法弄清楚如何解决这个问题。此外,我已经按照How do I use the latest GCC on Ubuntu?上的建议尝试了PPA,并且在GLIBCXX_3.4.15 not found上有一个针对较旧版本Ubuntu的类似问题。但是,在我运行sudo update后,出现了很多警告,并且使用strings命令获得的列表在安装gcc 4.9后没有新条目,因此我使用ppa-purge清除了PPA(Toolchains Test Builds)。任何帮助,如何进行的建议非常感谢。

最佳解决方法

试图运行其他程序时遇到了同样的问题,并在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”命令,但是之前为我解决了这个问题

次佳解决方法

它发生在我用aaconda 4.0.0(正如@mjp所述),但对我来说修复是在我的环境中运行这个命令:

conda install libgcc

第三种解决方法

我有这个问题 – 这是因为Anaconda2没有GLIBCXX_3.4.20版本的东西。只有.19,和你的一样。

但是,Ubuntu的 Library 确实拥有它。所以我刚刚在Anaconda库中创建了一个软链接/快捷方式到包含该GLIBCXX_3.4.20的实际Linux库,取代了之前的一个,并且在重新启动python GUI(Spyder)后它工作正常。

Anaconda库中应该有一个名为libstdc++.so.6的文件夹,它位于:~/anaconda2/lib。在此文件夹内是脚本/library-code-thing的版本,不包括您缺少的版本: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 /other界面

它现在应该工作!

第四种方法

这些年来,我已经有很多次,有很多不同的包装。它一直由以下方面解决:

sudo apt-get dist-upgrade

如果你的dist是可升级的,它几乎总是会导致一个新的C++库并重新配置诸如它们再次运行的东西。这个问题几乎总是由你的系统没有指向正确的库引起的。在我的情况下,通常是由指向库的cross-compiler版本引起的。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/843.html,未经允许,请勿转载。