【发布时间】:2014-11-13 18:40:01
【问题描述】:
我正在尝试通过 matlab here 编译一个 c++ ubuntu 项目。当我在使用 make 命令编译后尝试使用它时,出现以下错误:
Invalid MEX-file
'////fashionista_v0.2/lib/+bsr/buildW.mexglx':
//local/MATLAB/R2011a/bin/glnx86/../../sys/os/glnx86/libstdc++.so.6: version
`GLIBCXX_3.4.11' not found (required by
////fashionista_v0.2/lib/+bsr/buildW.mexglx)
我不熟悉这些流程,所以我无法理解像that 这样的几个提议的解决方案。究竟什么是 libstdc++ 和 GLIBCXX,我该如何解决这个问题?
我正在尝试使用 nkjt 提出的 link 解决问题:
export LD_LIBRARY_PATH=${prefix}/lib:$LD_LIBRARY_PATH
但是,由于缺乏 unix shell 知识,我不明白该在命令中输入什么。我找到了 gcc 文件夹 /usr/lib/gcc/i686-linux-gnu/4.6 中的 libstdc++ .a 和 .so 文件,我正在尝试以下操作:
export LD_LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6:$LD_LIBRARY_PATH
但是,我的 matlab 错误仍然存在。我正在使用带有 gcc 4.6 和 matlab r2011a 的 Ubuntu 12.04 版本。
编辑:我已将 matlab 版本更新为 r2012a 问题仍然相同。我还尝试了以下方法:
sudo ln -s /usr/lib/cc/i686-linux-gnu/4.6/libstdc++.so libstdc++.so.6
我无法创建文件已经存在的文件。
usr/lib/libstdc++.so.6 的输出 | grep GLIBC:
GLIBCXX_3.4
GLIBCXX_3.4.1
...
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
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
如何确保我定义了正确的 libstdc++ 版本?
【问题讨论】:
-
那么这里的错误是libstdc++版本错误还是链接库错误?
-
您所要做的就是链接它以将其定义为默认版本。