问题描述
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
请按照以下步骤解决问题:
-
请到正确的位置并备份当前的
anaconda2
快捷方式(更改其名称以免被覆盖):cd ~/anaconda2/lib mv -vf libstdc++.so.6 libstdc++.so.6.old
-
使用
ln
命令创建一个新的快捷方式(我假设我在前一个位置〜/anaconda2 /lib):ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
-
重启你使用的spyder /other界面
它现在应该工作!
第四种方法
这些年来,我已经有很多次,有很多不同的包装。它一直由以下方面解决:
sudo apt-get dist-upgrade
如果你的dist是可升级的,它几乎总是会导致一个新的C++库并重新配置诸如它们再次运行的东西。这个问题几乎总是由你的系统没有指向正确的库引起的。在我的情况下,通常是由指向库的cross-compiler版本引起的。