web-dev-qa-db-ja.com

GLIBCXX_3.4.20が見つかりません、このエラーを修正する方法は?

私はプログラムを実行しようとしますレイアウトエディターthis site で利用可能)Ubuntu 14.04.1 64ビットLTSで次の出力を取得しますターミナルで:

$ layout
layout: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by layout)

次のようにコマンドstrings on /usr/lib/x86_64-linux-gnu/libstdc++.so.6を試しましたが、ここに入力と出力があります。

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
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
GLIBCXX_DEBUG_MESSAGE_LENGTH

この問題を解決するにはどうすればGCCに関連していると推測できますが、問題を解決する方法がわかりません。さらに、 で提案されているようにPPAを試しました。Ubuntuで最新のGCCを使用するにはどうすればよいですか? および でUbuntuの古いバージョンについて同様の質問がありますGLIBCXX_3.4.15が見つかりません 。ただし、Sudo updateを実行した後、多数の警告が表示され、stringsコマンドで取得したリストにgcc 4.9をインストールした後に新しいエントリがなかったため、PPA( Toolchains Test Builds )with ppa-purge。助け、進行方法に関する提案は大歓迎です。

104
Vesnog

他のプログラムを実行しようとしたときに同じ問題が発生していましたが、 StackOverflow で解決策を見つけました。

基本的に、次のコマンドを実行するだけです。まず、インストールします。

Sudo apt-get install libstdc++6

これは既にデフォルトでインストールされているはずですが、とにかく試してください。解決しない場合は、次を実行してください。

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get dist-upgrade

「dist-upgrade」コマンドは実行しませんでしたが、前のコマンドで解決しました

100
Paulo

(@mjpが述べたように)anaconda 4.0.0で私に起こりましたが、私のための修正は私の環境でこのコマンドを実行することでした:

conda install libgcc
59
neok

私はこの問題を抱えていました-Anaconda2がGLIBCXX_3.4.20バージョンを持っていなかったからです。あなたと同じ.19までのみ。

ただし、Ubuntuのライブラリにはありました。そのため、GLIBCXX_3.4.20を含む実際のLinuxライブラリへのAnacondaライブラリにソフトリンク/ショートカットを作成し、以前のものを置き換えました。そして、python GUI(Spyder)を再起動すると正常に機能しました。

Anacondaライブラリにlibstdc++.so.6というフォルダーがあります。これは~/anaconda2/libです。このフォルダー内には、不足しているバージョンを除くscript/library-code-thingのバージョンがあります:GLIBCXX_3.4.20

次の手順に従って問題を解決してください。

  1. 適切な場所に移動し、backup現在のanaconda2ショートカット(上書きされないように名前を変更します):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. lnコマンドを使用して新しいショートカットを作成します(以前の場所〜/ anaconda2/libにいると仮定しています)。

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. スパイダー/使用する他のインターフェイスを再起動します

これで動作するはずです!

11
mjp

CentOSでこのような問題(GLIBCXX_3.4.21)を解決しましたが、OSに依存していません。ライブラリはgccコンパイラの一部であるため、gccの適切なバージョンをインストールまたはコンパイルする必要があります。これは、gccのバージョンと適切なlibstdc ++のバージョンの表です。

GCC 4.9.0: libstdc++.so.6.0.20
GCC 5.1.0: libstdc++.so.6.0.21
GCC 6.1.0: libstdc++.so.6.0.22
GCC 7.1.0: libstdc++.so.6.0.23
GCC 7.2.0: libstdc++.so.6.0.24
GCC 8.0.0: libstdc++.so.6.0.25

(バージョンの完全なリストは here

Gccのインストール方法に依存しません-パッケージからインストールされるか、ソースからコンパイルおよびインストールされます。

新しくインストールする代わりに、システムgccライブラリを使用できる可能性があります。そのため、たとえば次のようなコマンドラインでライブラリを検索する環境変数を指定する必要があります。

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
6
oklas

私は何年にもわたって多くの異なるパッケージで何度もそれを経験してきました。これは常に次の方法で解決されています。

Sudo apt-get dist-upgrade

Distがアップグレード可能な場合、ほとんどの場合、新しいC++ライブラリがダウンし、再び動作するように再構成されます。この問題は、ほとんどの場合、システムが適切なライブラリを指していないことが原因です。私の場合、通常はライブラリのクロスコンパイラバージョンを指していることが原因です。

2
Bryan Wilcutt
Sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/
1
Mati

before_install:

#この回避策は、SASSサポート付きの「拡張」hugoの実行中にlibstdc ++エラーを回避するために必要です。

  • wget -q -O libstdc++6 http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_AMD64.deb
  • Sudo dpkg --force-all -i libstdc++6

インストール:

  • wget -q -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.46/hugo_extended_0.46_Linux_64bit.deb
  • Sudo dpkg -i hugo.deb

私はこの解決策を見つけました ここ