web-dev-qa-db-ja.com

バージョン `GLIBCXX_3.4.21 'が見つかりません

私はUbuntu R2014aにMatlabを使用していますが、次のエラーが発生するためコードを実行できません

/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:version 'GLIBCXX_3.4.21' not found

私が実行するとき:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
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_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

ここで、GLIBCXX_3.4.21を持っていることがわかりますが、エラーも発生します!

4
user3481652

私のシステムはGCC 5.2.1だったので、実際に何が間違っていたのかがわかりました。

ファイル/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6はGCC 4.4.X用に設計されているため、Matlabは実際に間違ったファイルを選択していました。ターミナルでこれを使用して、システムのlibstdc++.so.6へのシンボリックリンクを作成しました-

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6

8
user3481652

/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6には/usr/lib/x86_64-linux-gnu/libstdc++.so.6ではなくglibcバージョンが含まれていないようです。ここで、Matlabは最初にMatlabパスでlibstdc++.so.6を試行し、失敗します。

mathworksからの投稿 以下は、システムlibstdc++.so.6でmatlabを起動するために動作するはずです。

LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libstdc++.so.6" matlab
4
Thomas

@Thomasからのリンクは WayBackマシンで使用可能 ですが、GLIBCXX_3.4.22で判断されるstrings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCが欠落しているため、これは機能しませんでした実際にはがありません。 これらの手順こちらも )に従ってこれを修正しました:

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install gcc-4.9
Sudo apt-get upgrade libstdc++6
0
IndefiniteBen