make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255 solution

matlab接口的编译真是泪千行。。。本来我是不用matlab的 ,但是带我的师兄只用matlab,为了学习他的程序我不得不编译接口。。。

make  matcaffe之后一开始就出现了gcc版本不合的问题,这个我猜大部分人都遇到过

目前caffe只支持4.7版本

因此我们要降级gcc和g++

 我用的就是这位博主的方法,查了很多其他的方法都没用。。。各位看官可以去围观一波。。这个方法我用完就可以编译了

http://www.cnblogs.com/loveyakamoz/archive/2012/12/26/2833967.html

最棒棒的是这个方法并不会删除gcc版本,以后你想升回来很方便!是不是很棒棒!

把gcc编译好之后又遇到了另一个问题

复制代码

 1 $make matcaffe -j8
 2 MEX matlab/+caffe/private/caffe_.cpp
 3 使用 'g++' 编译。
 4 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp: In function ‘void delete_solver(int, mxArray**, int, const mxArray**)’:
 5 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:208:3: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
 6 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:208:4: error: no matching function for call to ‘remove_if(std::vector<boost::shared_ptr<caffe::Solver<float> > >::iterator, std::vector<boost::shared_ptr<caffe::Solver<float> > >::iterator, delete_solver(int, mxArray**, int, const mxArray**)::<lambda(const boost::shared_ptr<caffe::Solver<float> >&)>)’
 7 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:208:4: note: candidate is:
 8 In file included from /usr/include/c++/4.7/algorithm:63:0,
 9                  from ./include/caffe/blob.hpp:4,
10                  from ./include/caffe/caffe.hpp:7,
11                  from /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:18:
12 /usr/include/c++/4.7/bits/stl_algo.h:1166:5: note: template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)
13 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:208:4: error: template argument for ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’ uses local type ‘delete_solver(int, mxArray**, int, const mxArray**)::<lambda(const boost::shared_ptr<caffe::Solver<float> >&)>’
14 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:208:4: error:   trying to instantiate ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’
15 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp: In function ‘void delete_net(int, mxArray**, int, const mxArray**)’:
16 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:293:3: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
17 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:293:4: error: no matching function for call to ‘remove_if(std::vector<boost::shared_ptr<caffe::Net<float> > >::iterator, std::vector<boost::shared_ptr<caffe::Net<float> > >::iterator, delete_net(int, mxArray**, int, const mxArray**)::<lambda(const boost::shared_ptr<caffe::Net<float> >&)>)’
18 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:293:4: note: candidate is:
19 In file included from /usr/include/c++/4.7/algorithm:63:0,
20                  from ./include/caffe/blob.hpp:4,
21                  from ./include/caffe/caffe.hpp:7,
22                  from /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:18:
23 /usr/include/c++/4.7/bits/stl_algo.h:1166:5: note: template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)
24 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:293:4: error: template argument for ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’ uses local type ‘delete_net(int, mxArray**, int, const mxArray**)::<lambda(const boost::shared_ptr<caffe::Net<float> >&)>’
25 /home/zkk/caffe/matlab/+caffe/private/caffe_.cpp:293:4: error:   trying to instantiate ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’
26 
27 Makefile:518: recipe for target 'matlab/+caffe/private/caffe_.mexa64' failed
28 make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255

复制代码

各种百度无果。。。最后在caffe中文社区上找到的方法,,跟我一模一样的问题

 

解决办法是:

       在Makefile里面,大约第410行那一句话

CXXFLAGS += -MMD -MP

下面添加CXXFLAGS += -std=c++11,

最后是这样 CXXFLAGS += -MMD -MP CXXFLAGS += -std=c++11

然后在caffe根目录下make clean,make all

 

宾果!matlab就这样顺利编译好啦!!!

看着挺简单。。。但是我能说我搜了两三天吗。。。。。给你们节省不少时间哈。。。。。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值