libstdc++.so.6 バージョン GLIBCXX_3.4.21 が見つからない問題を修正

1. 質問:

今日ウィスパーをインストールしているときに、突然次のようなエラーが報告されました。

OSError: Could not load shared object file: libllvmlite.so
Errors were: [OSError("/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 
(required by /opt/conda3/lib/python3.9/site-packages/llvmlite/binding/libllvmlite.so)"), OSError('libllvmlite.so: cannot open shared object file: No such file or directory'), OSError('./libllvmlite.so: cannot open shared object file: No such file or directory'), OSError("/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 
(required by /opt/conda3/lib/python3.9/site-packages/llvmlite/binding/libllvmlite.so)")]

2、その理由

1. 上位バージョンの gcc が呼び出され、生成された動的ライブラリは古いバージョンの gcc の動的ライブラリを置き換えません。

3. 解決策

1. libstdc++.so.6 のサポートされているバージョンを表示します。

(base) [root@comm-agi lib64]# strings /lib64/libstdc++.so.6 | grep GLIBC
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

上記からわかるように、gcc の動的ライブラリにはバージョン 3.4.21 がありません。

2. ダイナミック ライブラリ ファイルの上位バージョンを見つけて、/lib64 ディレクトリにコピーします。

2.1. インターネットからダウンロードすることも、ローカルで見つけることもできます

2.2. まず元のバージョンを確認します: /lib64 ディレクトリの下に次のように入力します: ll|grep libstdc++.so.6

赤い矢印の位置を見てください。元のバージョンは 6.0.19 です。

2.3. 上位バージョンをローカルで直接見つけて、次のコマンドを入力します。

(base) [root@ lib64]# find / -name "libstdc++.so.6.0*"

検索結果には次のことが表示されます。

/usr/lib/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.28

2.4 なので、6.0.28 を /lib64 ディレクトリにコピーしました: cp /usr/lib64/libstdc++.so.6.0.28 /lib64

2.5. 元のソフトリンクを削除します: rm /lib64/libstdc++.so.6 

2.6、新しいソフトリンクを作成します: ln -s /lib64/libstdc++.so.6.0.28 /lib64/libstdc++.so.6

(base) [root@ lib64]# ll|grep libstdc++.so.6
lrwxrwxrwx   1 root root        30 Aug 10 17:26 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.28
-rwxr-xr-x   1 root root    995840 Sep 30  2020 libstdc++.so.6.0.19
-rwxr-xr-x   1 root root  13121976 Aug 10 17:15 libstdc++.so.6.0.28

それでおしまい。ただし、/lib64 ディレクトリにコピーする必要はないと思います。2.3側の接続から直接ソフトリンクを構築するだけです

おすすめ

転載: blog.csdn.net/duzm200542901104/article/details/132218862