ImportError lib64 libstdc++.so.6 version CXXABI 1.3.9 not found required by home anaconda

3133 ワード

文書ディレクトリ
  • 1現象:
  • 2ソリューション
  • 3参照:
  • 1現象:
    ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/qtxu/anaconda3/lib/python3.6/site-packages/scipy/sparse/_sparsetools.cpython-36m-x86_64-linux-gnu.so)
    
    2ソリューション
    次の操作にはroot権限が必要です.
  • ダイナミックライブラリを表示
  • strings /usr/lib64/libstdc++.so.6 | grep CXXABI
    
    結果は次のとおりです.
    CXXABI_1.3
    CXXABI_1.3.1
    CXXABI_1.3.2
    CXXABI_1.3.3
    CXXABI_1.3.4
    CXXABI_1.3.5
    CXXABI_1.3.6
    CXXABI_1.3.7
    CXXABI_TM_1
    
    最高バージョンは1.3.7で、1.3.9はありません.説明これらの問題は、gccをアップグレードすると、生成されたダイナミックライブラリが古いバージョンのgccのダイナミックライブラリに置き換えられないためです.
    ls -l /usr/lib64/libstdc++.so.6
    
    lrwxrwxrwx 1 root root 19 Sep 29  2019 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
    
    libstdc++を発見しましたso.6はソフト接続でありlibstdc++に接続する.so.6.0.19の、libstdc++.so.6.0.19は古いバージョンのダイナミックライブラリです.次にlibstdc++をso.6新しいバージョンのダイナミックライブラリに接続します.
  • 次のコマンドを実行して、gccのコンパイル時に生成された最新のダイナミックライブラリを検索します:
  • find / -name "libstdc++.so.*"
    
    結果は以下の通りである:libstdc+.so.6.0.24・は、私たちの新しいバージョンのダイナミックライブラリです.
    /usr/lib64/libstdc++.so.6
    /usr/lib64/libstdc++.so.6.0.19
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
    /usr/local/hostguard/lib/libstdc++.so.6
    /home/qtxu/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
    /home/qtxu/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
    /home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
    /home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
    /home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/lib/libstdc++.so.6.0.24
    /home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/lib/libstdc++.so.6
    /home/qtxu/anaconda3/lib/libstdc++.so.6.0.24
    /home/qtxu/anaconda3/lib/libstdc++.so.6
    
  • 上記の最新ディレクトリを/usr/lib 64/ディレクトリの下:
  • にコピー
    cp /home/qtxu/anaconda3/lib/libstdc++.so.6.0.24 /usr/lib64/
    
  • libstdc++.so.6 libstdc++に接続する.so.6.0.24上へ:
  • cd /usr/lib64
    rm -rf libstdc++.so.6
    ln -s libstdc++.so.6.0.24 libstdc++.so.6
    
  • デフォルトのダイナミックライブラリのアップグレードが完了しました.次のコマンドを再実行してダイナミックライブラリを確認します:
  • strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'
    
    結果は次のとおりです.
    CXXABI_1.3
    CXXABI_1.3.1
    CXXABI_1.3.2
    CXXABI_1.3.3
    CXXABI_1.3.4
    CXXABI_1.3.5
    CXXABI_1.3.6
    CXXABI_1.3.7
    CXXABI_1.3.8
    CXXABI_1.3.9
    CXXABI_1.3.10
    CXXABI_1.3.11
    CXXABI_TM_1
    CXXABI_FLOAT128
    CXXABI_1.3
    CXXABI_1.3.11
    CXXABI_1.3.2
    CXXABI_1.3.6
    CXXABI_FLOAT128
    CXXABI_1.3.9
    CXXABI_1.3.1
    CXXABI_1.3.5
    CXXABI_1.3.8
    CXXABI_1.3.4
    CXXABI_TM_1
    CXXABI_1.3.7
    CXXABI_1.3.10
    CXXABI_1.3.3
    
    新しいダイナミックライブラリ1.3.11に接続されていることがわかります.完了!
    3参考:
  • 《エラーメッセージImportError:/lib 64/libstdc+.so.6:version`CXXABI_1.3.9’not found(required by...)》https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/80150207