坦白说我不知道CXXABI_1.3.8是个啥,但是他影响了我用matlab调用caffe接口。所以只能硬着头皮看看是啥。
错误如下:
MATLAB:dispatcher:loadLibrary Can’t load ‘/usr/local/MATLAB/R2014a/bin/glnxa64/libmwmm_rmidd_mi.so’: /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8’ not found (required by /home/lcy/anaconda2/lib/./libicui18n.so.58).
我有个大概率不准确的猜测,是修改完成后猜的。就是matlab的libstdc++.so.6链接到/libstdc++.so.6.0.17这个版本不够高,没有CXXABI_1.3.8,所以要找一个足够高的版本来。我是参考的https://blog.csdn.net/u012325865/article/details/80410163这位博主的方法,从anaconda2里面找到libstdc++.so.6.0.24这个版本,然后拷贝到matlab相应的目录下修改了这个错误。
具体操作如下:
1.首先查看matlab的/libstdc++.so.6的CXXABI版本
strings /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 | grep 'CXXABI'
结果显示出来很多CXXABI版本确实没有CXXABI_1.3.8
2.然后查看anaconda2的版本
strings /anaconda2/lib/libstdc++.so.6 | grep 'CXXABI'
他确实有版本1.3.8
3.用 ll 查看一下anaconda2的libstdc++.so.6和谁链接,就是上面提到的libstdc++.so.6.0.24
4.把anaconda的libstdc++.so.6.0.24复制到matlab相应目录下
cp /anaconda2/lib/libstdc++.so.6.0.24 /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/
5.到matlab目录下删掉matlab原来的libstdc++.so.6
cd /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/
rm -rf libstdc++.so.6
6.重新建立连接
ln -s libstdc++.so.6.0.24 libstdc++.so.6
到这里应该就好了,如果还不行试试ldconfig。
ubuntu真的太难搞了……