私は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
を持っていることがわかりますが、エラーも発生します!
私のシステムは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
/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
@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