问题描述:
ubuntu10.04中,一段matlab/c代码,进行混合编程;运行时报错:
libstdc++.so.6: version `GLIBCXX_3.4.11' not found 错误及解决
---------------------------------------------------------------------------------------------------------------------
网上搜集解决办法:http://www.cnblogs.com/xfzhang/archive/2011/10/14/2212486.html
该博客中描述比较详尽,如下:
首先,将MATLAB~/sys/os/glnxa64/libstdc++.so.6,改名为libstdc++.so.6_backup
sudo mv libstdc++.so.6 libstdc++.so.6_backup
(居然直接就能调通了20111019)
0. 将系统目录下/usr/lib/libstdc++.so.6复制到应用程序的库目录替换,如:这里复制到MATLAB_Path/sys/os/glnxa64/中。
博客:
http://blog.sina.com.cn/s/blog_6cf6b58d0100q0r2.html
给出的方法,我试了不行。原因我猜想是因为简单的复制改变了文件的指向,无法指向目标文件。
1. rm MATLAB_Path/sys/os/glnxa64/libstdc++.so.6
我试了,没成功。但是其它方法中的两篇文章都进行了实践,成功了。
2. 博客:libstdc++.so.6:version ‘GLIBCXX_3.4.**’not found
http://yq000cn.blog.163.com/blog/static/14369070201171653016852/
给出了文件libstdc++.so.6的查看方法:
$strings $MATLAB_Path/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
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.3
GLIBC_2.0
GLIBC_2.1
GLIBCXX_FORCE_NEW
Linux:
$strings /usr/lib/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
GLIBC_2.0
GLIBC_2.3
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
所以做如下操作:
让MATLAB的libstdc++.so 软链接指向Linux的库文件
$ln –s /usr/iib/libstdc++.so.6 $MATLAB_Path/sys/os/glnxa64/libstdc++.so.6
搞定!