未找到 GLIBCXX_3.4.20,如何修复此错误?

Ves*_*nog 117 ppa shared-library gcc libraries

我尝试在 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)
Run Code Online (Sandbox Code Playgroud)

我试着命令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
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题我以某种方式猜测它与相关GCC但无法弄清楚如何解决这个问题。此外,我已经按照如何在 Ubuntu 上使用最新的 GCC?并且在GLIBCXX_3.4.15 not found 上有一个针对旧版本 Ubuntu 的类似问题。然而,当我跑了sudo update,我得到很多的警告,我和字符串命令获得的名单安装后没有新的项目gcc 4.9,所以我清除了PPA(工具链测试构建)与ppa-purge。非常感谢任何帮助,关于如何进行的建议。

小智 115

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

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

sudo apt-get install libstdc++6
Run Code Online (Sandbox Code Playgroud)

默认情况下应该已经安装了它,但无论如何都要尝试。如果它没有解决它,只需执行以下操作:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

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

  • sudo apt-get dist-upgrade 解决了我的问题 (8认同)
  • 更新后,您可以将 GLIBCXX 的最新版本检查为 `strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX` (5认同)
  • 问题在不需要 `dist-upgrade` 的情况下解决了,因为 `upgrade` 提出并用最新的 `libstdc++` 更新了我的系统 (2认同)
  • 添加存储库,我最终需要“更新”和“dist-upgrade”。 (2认同)
  • Ubuntu 16.04:2017 年 11 月,添加“不受信任和不受支持”[ppa:ubuntu-toolchain-r/test](https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test)通过 add-`apt-repository` 更新了 `/usr/lib/x86_64-linux-gnu/libstdc++.so.6` 直到并包括 GLIBCXX_3.4.24 -- 此外,这更新了基本所有的 c/c++/fortran 开发工具在你的机器上 (2认同)

t-b*_*ltg 65

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

conda install libgcc
Run Code Online (Sandbox Code Playgroud)

  • 在尝试了其他线程的许多解决方案后,这为我解决了这个问题。 (7认同)
  • 也适用于 Ubuntu 16.04 (3认同)

mjp*_*mjp 16

我遇到了这个问题 - 这是因为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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用ln命令创建一个新的快捷方式(我假设我在之前的位置 ~/anaconda2/lib):

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

它现在应该可以工作了!


小智 8

我在 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
Run Code Online (Sandbox Code Playgroud)

(版本的完整列表在这里

它不依赖于如何安装 gcc - 它可以从包安装或从源代码编译和安装。

系统 gcc 库可能是可用的,而不是新安装的。所以需要指定环境变量在哪里可以找到库,例如在命令行中,如下所示:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
Run Code Online (Sandbox Code Playgroud)

  • 我通过使用以下命令更新链接“/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认同)