我正在尝试通过Matlab这里编译一个Ubuntu C++项目。当我使用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)
我不熟悉这些过程,所以无法理解像此类提出的几种解决方案。libstdc++和GLIBCXX到底是什么,我该如何解决这个问题?
我正在尝试使用nkjt提供的链接来解决这个问题。
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错误依旧存在。我正在使用Ubuntu 12.04版本,gcc 4.6和matlab r2011a。
编辑:我已经将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++版本?