私はプログラムを実行しようとしますレイアウトエディター( 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
。助け、進行方法に関する提案は大歓迎です。
他のプログラムを実行しようとしたときに同じ問題が発生していましたが、 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」コマンドは実行しませんでしたが、前のコマンドで解決しました
(@mjpが述べたように)anaconda 4.0.0で私に起こりましたが、私のための修正は私の環境でこのコマンドを実行することでした:
conda install libgcc
私はこの問題を抱えていました-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
次の手順に従って問題を解決してください。
適切な場所に移動し、backup現在のanaconda2
ショートカット(上書きされないように名前を変更します):
cd ~/anaconda2/lib
mv -vf libstdc++.so.6 libstdc++.so.6.old
ln
コマンドを使用して新しいショートカットを作成します(以前の場所〜/ anaconda2/libにいると仮定しています)。
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
スパイダー/使用する他のインターフェイスを再起動します
これで動作するはずです!
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 ...
私は何年にもわたって多くの異なるパッケージで何度もそれを経験してきました。これは常に次の方法で解決されています。
Sudo apt-get dist-upgrade
Distがアップグレード可能な場合、ほとんどの場合、新しいC++ライブラリがダウンし、再び動作するように再構成されます。この問題は、ほとんどの場合、システムが適切なライブラリを指していないことが原因です。私の場合、通常はライブラリのクロスコンパイラバージョンを指していることが原因です。
Sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/
#この回避策は、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
私はこの解決策を見つけました ここ