brn*_*uro 3 c++ matlab shared-libraries mex mysql-connector
我正在运行ubuntu 12.04和matlab R2012a.
不确定问题到底是什么,但我可以很好地构建我的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)
Run Code Online (Sandbox Code Playgroud)
我发现特别奇怪,因为如果我在终端中运行以下内容
strings /usr/local/MATLAB/R2012a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 | grep GLIBC
Run Code Online (Sandbox Code Playgroud)
我知道了:
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
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?任何帮助,将不胜感激.
谢谢,Brian
小智 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
Run Code Online (Sandbox Code Playgroud)
另请参阅:/usr/lib/libstdc++.so.6:未找到版本`GLIBCXX_3.4.15'
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |