3

私はubuntu12.04とmatlabR2012aを実行しています。

問題が正確に何であるかはわかりませんが、mexファイルを問題なくビルドできます。しかし、実行すると、このエラーが発生します

Invalid MEX-file '/home/br/Documents/MATLAB/langmod/rss2mysql/mexUrl2dbSrc.mexa64':/usr/local/MATLAB/R2012a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/lib/libmysqlcppconn.so.5)

私が特に奇妙だと思うのは、ターミナルで次のことを実行すると

strings /usr/local/MATLAB/R2012a/bin/glnxa64/../../sys/os/glnxa64/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
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

これを修正するにはどうすればよいですか?どんな助けでもいただければ幸いです。

ありがとう、ブライアン

4

1 に答える 1

8

これは、Matlabに、コンパイルに使用したものとは異なる独自のライブラリのコピーが含まれているために発生する可能性があります。このライブラリへのシンボリックリンクを置き換えて、mexファイルをコンパイルしたときにシステムライブラリを指すようにすることができます。私のマシンでは、これは次のようになります。

sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16 /usr/local/MATLAB/R2012a/bin/glnxa64/libstdc++.so.6

参照:/usr/lib/libstdc++.so.6:バージョン`GLIBCXX_3.4.15'が見つかりません

于 2012-07-31T15:30:18.860 に答える