make matcaffe:出现的问题及解决办法
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就这样顺利编译好啦!!!
make matcaffe:出现的问题及解决办法相关推荐
- dev c++ 调试时候发生软件崩溃解决办法
dev c++ 调试时候发生软件崩溃解决办法 安装好dev cpp,准备调试的时候发现软件崩溃,这种情况很好解决.只要在工具菜单中点开编译选项,找到代码生成/优化一栏,将链接器的"产生调试信 ...
- js ajax 递归,javascript ajax循环请求/ 长轮询终极解决办法——递归
ajax循环请求,不能使用for循环,原因如下: 1. 因为ajax是异步执行,在还没有拿到服务器响应内容,就进入下一个for循环中 解决办法:递归currentIndex = 0; function ...
- hive mysql 不兼容_Hive+mySql遇到的问题和解决办法
问题1: Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteEx ...
- 微信小程序wx.request POST获取不到数据解决办法
get //发起请求 wx.request({ url: 'http://www.xiaochengxu.com/home/index/curd', //仅为示例,并非真实的接口地 ...
- 主机/服务器某端口被占用及解决办法
1.端口的概念 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL Modem.集线器.交换机.路由器上用 于连接其他网络设备的接口,如RJ-45端 ...
- 关于HttpClient上传中文乱码的解决办法
使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...
- 使用hibernate与mysql时数据不能插入的原因及解决办法
1.背景 之前从没用过hibernate,因此在网上搜了一下hibernate快速入门方面的信息,最后我按照<Myeclipse Hibernate 快速入门 中文版>(CSDN,百度文库 ...
- 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法
原文链接:https://blog.csdn.net/changqing5818/article/details/53932463 前言 今天遇到个奇怪的问题,使用JQuery的ajax请求,后台的C ...
- ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法
在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener ...
最新文章
- 电脑安装android2.0,电脑上怎么安装使用安卓系统
- PowerDesigner概念模型详解
- Oracle 11gR2发布11.2.0.3 Patchset补丁集-又一重量级更新
- ESP8266等模块
- 神经网络告诉我,谁是世界上最「美」的人?
- 项目alpha冲刺-总结
- git使用笔记(一)入门
- Abaqus软件2021新版本新功能详解
- 自学编程的 6 个致命误区
- 对 Unity 动画系统 Mecanim 的调研
- html qq在线状态,qq各种在线状态意思
- 汉化+破解Substance Painter 2019 macv2019.1.0图文展示
- js实现局部打印,并处理浏览器提示Avoid using document.write()导致无法打印问题
- IntelliJ IDEA 如何增加运行时候的内存
- Dell戴尔G7 7588换m.2 nvme固态硬盘+系统迁移
- 批量检测商品是否下架,批量查询商品信息接口
- 【Rust日报】2021-08-30 如何来看待 unwrap
- 全国计算机技术与软件专业资格(水平)考试介绍
- ADC参数定义以及选型指南
- 【官方推荐方式】【原创】安卓换肤踩坑纯色模式app使用attr轻松实现定制颜色主题和深色主题...