caffe和matlab的接口配置——make mattest出错

纪念一下终于解决的caffe和matlab的接口配置问题:
问题
make matcaffe依照正常流程改一下makefile.configure里面的matlab路径就好了。

Invalid MEX-file
‘/home/wxy/packages/caffe-master/matlab/+caffe/private/caffe_.mexa64’:
/usr/local/MATLAB/R2015b/bin/glnxa64/…/…/sys/os/glnxa64/libstdc++.so.6:
version `CXXABI_1.3.8’ not found (required by
/home/wxy/packages/caffe-master/matlab/+caffe/private/caffe_.mexa64)

出错 caffe.set_mode_cpu (line 5)
caffe_(‘set_mode_cpu’);

出错 caffe.run_tests (line 6)
caffe.set_mode_cpu();

分析
出现这种错误的原因在于: 在使用Matlab 运行caffe 库的过程中,有时会因为Matlab 和 caffe 版本的不一致,而产生错误。

在linux 命令行窗口中,使用ldd 命令查看 caffe_.mexa64 所依赖的所有库文件的路径,读法结构为 : ldd path,其中path是caafe_.mexa64的完整路径:
ldd /home/wxy/packages/caffe-master/matlab/+caffe/private/caffe_.mexa64 | grep libstdc++,可以得到libstdc++.so.6的真实路径
“libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ”;

解决
在matlab命令行窗口执行!ldd /home/wxy/packages/caffe-master/matlab/+caffe/private/caffe_.mexa64 | grep libstdc++,可以发现libstdc++.so.6 ==> /usr/local/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6, 也就是说在matlab里自动调用的是/usr/local/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6,而不是 /usr/lib/x86_64-linux-gnu/libstdc++.so.6,所以解决方法是建立软链接:

sudo rm /usr/local/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6
sudo ln -s  /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6

这样就解决啦!
终端输入make mattest最终出现以下窗口:
caffe和matlab的接口配置——make mattest出错_第1张图片

你可能感兴趣的:(Ubuntu—caffe配置)