/lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found

2635 ワード

究極の一戦
  • libstdc++.so.6バージョンの低さによる
  • コンパイルGCC
  • 絶命の一撃ImportError:/lib 64/libstdc+.so.6: version `CXXABI_1.3.8’ not found
    libstdc++.so.6バージョンが低すぎることによる
    自分のlibstdc++.so.6CXXABI_1.3.8が含まれているかどうか見てみましょう.
    # 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
    

    やっぱりありません.注意、GCCバージョンが低すぎるとは限らず、SCL(sclについてhttps://linux.cn/article-6776-1.html)GCCをアップグレードするのに役に立たず、libstdc++をアップグレードすることはできません.so.6だからlibstdc++をアップグレードします.so.6、ついでにGCCをアップグレード.GCCのみアップグレード(scl経由)は無効です.gccのバージョンが高いためですが、彼のlibstdc++はrequireの元のlibstdc++.so.6です.
    信じないよ
    # cat /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++.so
    
    /* GNU ld script
       Use the shared library, but some functions are only in
       the static library, so try that secondarily.  */
    OUTPUT_FORMAT(elf64-x86-64)
    INPUT ( /usr/lib64/libstdc++.so.6 -lstdc++_nonshared )
    

    だから卵が痛いんでしょう???
    解決策はGCCを再コンパイルすることだけです.
    コンパイルGCC
  • インストール依存ライブラリyum install -y gmp-devel mpfr-devel libmpc-devel
  • ダウンロードソースパッケージftp://ftp.gnu.org/gnu/gcc/gcc-9.2.0/
  • 解凍
  • configure
  • make(注意、これは非常に時間がかかります.プラス-j 4は4スレッドコンパイルを意味します.もしあなたが4コアを持っていると、CPUがいっぱいになって、サービスが警察に通報するので、状況を見て、私は直接nohup make &で家に帰って寝ます)
  • この命令は次の通りです.
    sudo yum install gmp-devel mpfr-devel libmpc-devel -y
    cd download
    wget ftp://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.xz
    xz -d gcc-9.2.0.tar.xz
    tar -xf gcc-9.2.0.tar
    cd gcc-9.2.0
    ./configure --disable-multilib --enable-languages=c,c++ --prefix=$HOME/local
    make -j4
    make -j install
    

    インストールが完了したら、新しいインストールパスを環境変数に追加します.
    export LD_LIBRARY_PATH=$HOME/local/lib64
    
    ~/.bash_profilePATH=$HOME/local/bin:$PATHを付けてlocalを前に置くことができ、同じ名前のbinが同時に存在する場合に備えて、ローカルのbinファイルを呼び出してLD_LIBRARY_PATH=$HOME/local/lib64.base_profileに加えることができ、後で便利に使用することができます.done.