Anaconda libstdc ++.so.6:找不到版本`GLIBCXX_3.4.20'

use*_*104 4 linux python-3.x spyder anaconda jupyter-notebook

我正在使用anaconda for python,我遇到了这个问题我尝试了很多来解决这个错误,但仍然没有解决.

到目前为止我使用了以下命令

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

conda install libgcc
Run Code Online (Sandbox Code Playgroud)

在这个链接提供了一个解决方案,但我仍然不知道如何做到这一点

Wen*_*Lin 21

这是因为你在升级 gcc 时有一些旧版本没有清理。

首先,确保您拥有最新的库conda install -c conda-forge libstdcxx-ng

  1. 查找所有带有 .lib 的版本find / -name "libstdc++.so*"。我的最新版本是6.0.30。
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so.6.0.29
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so.6.0
/opt/conda/lib/libstdc++.so.6.0.29
/opt/conda/lib/libstdc++.so.6
/opt/conda/envs/xxx/lib/libstdc++.so.6.0.30
/opt/conda/envs/xxx/lib/libstdc++.so.6
/opt/conda/pkgs/libgcc-7.2.0-h69d50b8_2/lib/libstdc++.so.6.0.21
/opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6.0.30
/opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6
/opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so
Run Code Online (Sandbox Code Playgroud)
  1. 将文件复制到您正在使用的文件夹中,并且只有旧版本。/opt/conda/lib/或者/opt/conda/envs/xxx/lib/

例如,我正在研究/opt/conda/lib/

cp /opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6.0.30 /opt/conda/lib/
Run Code Online (Sandbox Code Playgroud)
  1. 删除旧文件并链接最新的库。请对其他文件夹重复这些步骤。
cd /opt/conda/lib/
rm libstdc++.so.6.0.29
rm libstdc++.so.6.0
ln -s libstdc++.so.6.0.30 libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)


peb*_*x11 14

对我有用的解决方案是:

conda install -c anaconda libstdcxx-ng

  • `conda update libstdcxx-ng` 对我有用 (6认同)

cei*_*cat 12

我解决了这个问题

conda install libgcc=5.2.0
Run Code Online (Sandbox Code Playgroud)


小智 5

我遇到了类似的问题。

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found 
Run Code Online (Sandbox Code Playgroud)

我已经解决了。步骤如下:

try conda install -c anaconda libstdcxx-ng, // didn't work
try conda update libstdcxx-ng // didn't work too
Run Code Online (Sandbox Code Playgroud)

但是当我执行命令:时locate libstdc++.so.6,发现了令人惊奇的东西,例如:/root/anaconda3/lib/libstdc++.so.6.0.26,它显然比.so.6.0更新。

我尝试:

strings /root/anaconda3/lib/libstdc++.so.6.0.26 | grep GLIBC
see [GLIBCXX_3.4.20][1]
Run Code Online (Sandbox Code Playgroud)

这就是我想要找到的文件。

下一步:ls -l /root/anaconda3/lib/libstdc++.so.6.0.26- 检查文件是否真实,而不是链接。

下一步:将 /root/anaconda3/lib/libstdc++.so.6.0.26 复制到 /lib64。

下一步:ls -l /lib64/libstdc++.so.6- 这是一个软链接,因此我可以放心删除它。

下一步:rm -rf /lib64/libstdc++.so.6

下一步:通过以下方式创建新的软链接: ln -s libstdc++.so.6.0.26 libstdc++.so.6

就这样。我运行我的代码没有错误。

愿神赐予我智慧,荣耀归于神!