バージョン「GLIBCXX_3.4.29」が見つからない問題の解決方法

まず、実行時の問題は次のとおりです。

ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/wuye/anaconda3/envs/tf2/lib/python3.8/site-packages/google/protobuf/pyext/_message.cpython-38-x86_64-linux-gnu.so)

ここに画像の説明を挿入
これは、デフォルト パスの libstdc++.so.6 に GLIBCXX_3.4.29 が存在しないためです。解決策は次のとおりです。

(1) コマンドを使用して、システムの現在バージョンを確認します。

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

ここに画像の説明を挿入
ここでは 3.28 までしか到達していないので、GLIBCXX_3.4.29 が欠落していると確信しています。
(2) 現在のシステムで同じタイプの他のファイルを表示するには、より高いバージョンを見つけてください

sudo find / -name "libstdc++.so.6*"

画像の説明を追加してください

ここに画像の説明を挿入
多くのバージョンがあるため、より高いバージョンを選択しました。ここでは 3.4.29 です。前のコマンドを使用して、必要なバージョンが含まれているかどうかを確認します。

strings /home/wuye/anaconda3/envs/tf2/lib/libstdc++.so.6.0.29 | grep GLIBCXX

ここに画像の説明を挿入

必要なバージョンが表示されます。次のステップでは、このファイルへの新しいリンクを作成します
(3) 指定されたディレクトリにコピーし、新しいリンクを作成します

# 复制
sudo cp /home/wuye/anaconda3/envs/tf2/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/
# 删除之前链接
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
# 创建新的链接
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

その後、プログラムは通常は正常に実行できるようになります。

[注] 権限の問題により、権限を確認する必要がある場合があります。

ll /usr/lib/x86_64-linux-gnu/libstd*

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_39379635/article/details/129159713