找不到GLIBCXX_3.4.20,如何修复此错误?
乳清我尝试在Ubuntu 14.04.1 64位LTS上运行程序布局编辑器 (在本网站上提供)我在终端中得到以下输出:
$ 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
有关但无法弄清楚如何解决这个问题。 此外,我已经尝试了如何在Ubuntu上如何使用最新的GCC建议的PPA ? 并且在找不到GLIBCXX_3.4.15的旧版Ubuntu时存在类似的问题。 但是,在我运行sudo update
我得到了很多警告,并且我在使用strings命令获得的列表在安装gcc 4.9
后没有新条目,所以我用ppa-purge
清除了PPA( 工具链测试构建 )。 任何帮助,关于如何进行的建议都非常感谢。
我在尝试运行其他程序时遇到了同样的问题,并在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”命令,但之前的那些命令已经为我解决了
它发生在我身上的anaconda 4.0.0(正如@mjp所述),但我的修复是在我的环境中运行此命令:
conda install libgcc
我有这个问题 – 这是因为Anaconda2
没有GLIBCXX_3.4.20版本的任何东西。 只有.19,和你的一样。
但是,Ubuntu的图书馆确实拥有它 。 所以我刚刚在Anaconda库中创建了一个软链接/快捷方式到包含GLIBCXX_3.4.20的实际Linux库,替换了前一个,并且在重新启动python GUI(Spyder)后工作正常。
在Anaconda库中应该有一个名为libstdc++.so.6
的文件夹,它位于: ~/anaconda2/lib
。 在此文件夹中是脚本/库代码事物的版本,不包括您缺少的版本: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 /你使用的其他界面
它现在应该工作!
我在CentOS上解决了这样的问题(但GLIBCXX_3.4.21),但它并不依赖于操作系统。 该库是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 ...
这些年来,我已经多次使用许多不同的包装。 它始终通过以下方式解决:
sudo apt-get dist-upgrade
如果您的dist是可升级的,它几乎总会关闭一个新的C ++库并重新配置它们再次工作的东西。 问题几乎总是由您的系统指向正确的库引起的。 在我的情况下,通常是由指向库的交叉编译器版本引起的。
sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/