我正在尝试将libstdc ++。so.6从4.8.3改为3.4.20。
为什么我这样做?由于这个错误:
文件"",第1行,in ImportError:/usr/lib64/libstdc++.so.6:版本`GLIBCXX_3.4.20'找不到(/var/lang/lib/python3.6/site-packages/lgraph.cpython-36m-x86_64-linux-gnu.so所需)
因此,我认为我必须更新版本。 (我也尝试过安装gcc-8.0.1,但要么没有正确安装,要么无法正常工作)。
Architecture: 2018 x86_64 x86_64 x86_64 GNU/Linux
Information:
$ bash-4.2# yum info gcc-c++
Installed Packages
Name : gcc-c++
Arch : noarch
Version : 4.8.3
Release : 3.20.amzn1
Size : 0.0
Repo : installed
From repo : amzn-main
Summary : C++ support for GCC
I also ran this command:
bash-4.2# /sbin/ldconfig -p | grep stdc++
libstdc++.so.6 (libc6,x86-64) => /usr/lib64/libstdc++.so.6
libstdc++.so (libc6,x86-64) => /usr/lib64/libstdc++.so
顺便说一句,我在Docker容器上做了所有这些(如果这很重要)。我正在运行的程序/包是建立在:
Information:
Architecture: CEST 2018 x86_64 GNU/Linux
server:~$/sbin/ldconfig -p | grep stdc++
libstdc++.so.6 (libc6,x86-64) => /usr/lib/libstdc++.so.6
libstdc++.so.6 (libc6) => /usr/lib32/libstdc++.so.6
libstdc++.so.5 (libc6) => /usr/lib32/libstdc++.so.5
libstdc++.so (libc6,x86-64) => /usr/lib/libstdc++.so
libstdc++.so (libc6) => /usr/lib32/libstdc++.so
server:~$gcc --version
gcc (GCC) 8.1.1 20180531
答案 0 :(得分:0)
解决此问题的最简单方法是使用较旧的GCC安装进行构建(例如GCC 4.8,就像您运行的机器一样)。另一种方法是简单地将所需的库复制到您运行的机器上,并将它们的路径放在环境变量LD_LIBRARY_PATH
中。
答案 1 :(得分:0)
我通过在我的docker容器上手动安装gcc-8.0.1并向LD_LIBRARY_PATH
添加正确的路径来修复此问题。