2012-07-31 29 views
3

我在運行ubuntu 12.04和matlab R2012a。mysql和matlab mex - libmysqlcppconn找不到glibcxx_3.4.15

不確定問題是什麼,但我可以建立我的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 

怎麼辦我要解決這個問題嗎?任何幫助,將不勝感激。

感謝, 布賴恩

+2

相關:【如何分辨MEX用libstdC++鏈接so.6在/ usr/lib目錄,而不是1英寸MATLAB目錄?](http://stackoverflow.com/q/9959306/97160),[用Matlab R2011a在Ubuntu 11.04上編譯Matlab mex文件時出錯](http://stackoverflow.com/q/7639666/97160) – Amro 2012-07-31 16:25:53

回答

7

這可能發生,因爲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: version `GLIBCXX_3.4.15' not found

+0

我已經完成了所有這些...儘管matlab有兩個位置的文件,我的OP中包含的鏈接和您的回覆中的鏈接。不知道我是否錯過了改變其中的一個,但將這兩個文件重新鏈接到libstdC++。so.6.0.17(它支持所需的一切)之後,matlab沒有選擇它。我嘗試了'rehash',但那甚至都不起作用,但重新啓動matlab使它能夠接受更改。謝謝。 – brneuro 2012-07-31 17:46:51

+0

這幫了我。謝謝! – Justin 2013-08-30 00:21:34