web-dev-qa-db-ja.com

/usr/lib/x86_64-linux-gnu/libstdc++.so.6:バージョンCXXABI_1.3.8 'が見つかりません

私は最近助けを求めました https://stackoverflow.com/questions/20253515/no-idea-as-to-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi -1-3-8 そして、それはダウン投票されて閉じられました(理由はわかりません)

「make install」-ターゲット「install-target-libstdc ++ v3」をインストールして暗示するmakeターゲットは、実際に準備ができていることを意味しません。

そのようなmakeターゲットがそれを私のためにすると思っていたので、私は何が間違っていたのか疑問に思ってしばらく立ち往生していました。

この回答が少なくとも一人の他の人に役立つことを願っています。

62
Alec Teal

同様の問題に悩まされているすべての人のために、次を実行します:

LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

GCCをコンパイルしてインストールすると、ライブラリがここに配置されますが、それだけです。 FAQにあるように( http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths )、追加する必要があります。

「動的にリンクされたライブラリが確実に見つかるようにするにはどうすればよいですか?」という意味は、「見つけられないので、これを行う必要がある」ではなく「常に見つけられるようにする方法」を意味します。

プレフィックスを設定する必要がない場合は、/ usr/local/lib64です

Makeの出力を読むと、gccをインストールするときにこれについて簡単に説明します。

Libraries have been installed in:
   /usr/local/lib/../lib32
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages. 

Grrは簡単でした!また、「インストールしたライブラリにリンクしたい場合」-真剣に?

43
Alec Teal

TopTrackerをインストールしようとしたときに、Ubuntu 14.04で同じ問題が発生しました。私はそのようなエラーを受け取りました:

/ usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:バージョン 'CXXABI_1.3.8'が見つかりません(/ usr/share/toptracker/bin/TopTrackerで必要)/usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:バージョン 'GLIBCXX_3.4.21'が見つかりません(/ usr/share/toptracker/bin/TopTrackerで必要)/usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:バージョン 'CXXABI_1.3.9'が見つかりません(/ usr/share/toptracker/bin/TopTrackerで必要)

しかし、その後、gcc 4.9バージョンをインストールし、問題はなくなりました。

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install gcc-4.9 g++-4.9
19
Footniko

私は正しい解決策を持っています ここ

正しくgcc-4.9をインストールし、それをデフォルトのgccバージョンとして設定する最良の方法:

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install gcc-4.9 g++-4.9
Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

--slaveとg ++を使用すると、g ++がgccとともに同じバージョンに切り替えられます。ただし、この時点で、gcc-4.9がupdate-alternativesで設定された唯一のバージョンになるため、update-alternativesに4.8を追加します。したがって、実際には以下を使用して代替手段があります。

Sudo apt-get install gcc-4.8 g++-4.8
Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

次に、設定されているものを確認し、以下を使用して前後に変更できます。

Sudo update-alternatives --config gcc

注:PPAリポジトリのインストールをスキップして/usr/bin/gcc-4.9-baseを使用することもできますが、新しく更新されたツールチェーンを使用することをお勧めします。

6
Yuliia Ashomok

この解決策は、ubuntu 16.04、VirtualBox 2.7.2およびgenymotion 2.7.2を使用している私の場合に機能します同じシステムに同じエラーが発生し、簡単な手順に従って問題が解決しました

1. $ LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
2. $ export LD_LIBRARY_PATH
3. $ Sudo apt-add-repository ppa:ubuntu-toolchain-r/test
4. $ Sudo apt-get update
5. $ Sudo apt-get install gcc-4.9 g++-4.9

これがあなたのために働くことを願っています

2
Vipin Jain

Ubuntu 14.04 64ビットとgcc-4.8(CXXABI_1.3.7)にPhantomJSをインストールするときに同じエラーが発生していました

Gcc-4.9(CXXABI_1.3.8)にアップグレードすると、問題が修正されました。 HOWTO: https://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-4-9-on-ubuntu-14-04

1
Marek Tichy

私の場合、gcc 6がありませんでした

Sudo apt-get install gcc-6 g++-6 -y

1
Jose Ospina

他の回答が示唆することは、問題のプログラムに対しては機能しますが、他のプログラムの破損や他の場所での未知の依存を引き起こす可能性があります。小さなラッパースクリプトを作成することをお勧めします。

#!/bin/sh
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
program_needing_different_run_time_library_path

これは、 なぜLD_LIBRARY_PATHが悪いのか で説明されている問題を、それらを必要とするプログラムに効果を限定することで回避します。

LD_RUN_PATHという名前はリンク時に機能し、悪ではありませんが、LD_LIBRARY_PATHはリンクと実行時に機能します(およびisevil :) 。

1
Britton Kerin

python内でfstをインポートしようとしたときに、Ubuntu-64システムでこの問題に遭遇しました。

    Python 3.4.3 |Continuum Analytics, Inc.| (default, Jun  4 2015, 15:29:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fst
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ogi/miniconda3/lib/python3.4/site-packages/pyfst-0.2.3.dev0-py3.4-linux-x86_64.Egg/fst/__init__.py", line 1, in <module>
    from fst._fst import EPSILON, EPSILON_ID, SymbolTable,\
ImportError: /home/ogi/miniconda3/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/local/lib/libfst.so.1)

その後、私は走った:

ogi@ubuntu:~/miniconda3/lib$ find ~/ -name "libstdc++.so.6"
/home/ogi/miniconda3/lib/libstdc++.so.6
/home/ogi/miniconda3/pkgs/libgcc-5-5.2.0-2/lib/libstdc++.so.6
/home/ogi/miniconda3/pkgs/libgcc-4.8.5-1/lib/libstdc++.so.6
find: `/home/ogi/.local/share/jupyter/runtime': Permission denied
ogi@ubuntu:~/miniconda3/lib$

mv /home/ogi/miniconda3/lib/libstdc++.so.6 /home/ogi/miniconda3/libstdc++.so.6.old
cp /home/ogi/miniconda3/libgcc-5-5.2.0-2/lib/libstdc++.so.6 /home/ogi/miniconda3/lib/

その時点で、ライブラリをロードできました

ogi@ubuntu:~/miniconda3/lib$ python
Python 3.4.3 |Continuum Analytics, Inc.| (default, Jun  4 2015, 15:29:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fst
>>> exit()
0
Ogi Moore