找不到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

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

  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 /你使用的其他界面

它现在应该工作!

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