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最终出现以下窗口:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值