YOLOv3的Darknet在OpenCV3.4.1(bug)下编译出错填坑
刚配置完环境
https://www.cnblogs.com/clemente/p/11029117.html
能正常跑原版 darknet ,但是跑了一下别人修改的版本出现了错误

查Google之后才发现遇到这个问题的朋友不在少数,大概的原因是因为OpenCV 3.4.1在C的API里有bug,所以导致了这个编译问题。那么我将国外大神的办法转到这里,希望能够帮助大家解决这个问题,原帖地址在这,也衷心感谢这位国外大神。
步骤有两步,需要修改两个c文件。
第一步,找到:
/usr/local/include/opencv2/core/cvdef.h
修改485行左右的代码:
#else
#include <stdint.h>
namespace cv {
typedef ::int8_t int8_t;
typedef ::uint8_t uint8_t;
typedef ::int16_t int16_t;
typedef ::uint16_t uint16_t;
typedef ::int32_t int32_t;
typedef ::uint32_t uint32_t;
typedef ::int64_t int64_t;
typedef ::uint64_t uint64_t;
}
#endif
把这段代码注释掉,改为:
#else
#include <stdint.h>
//namespace cv {
//typedef ::int8_t int8_t;
//typedef ::uint8_t uint8_t;
//typedef ::int16_t int16_t;
//typedef ::uint16_t uint16_t;
//typedef ::int32_t int32_t;
//typedef ::uint32_t uint32_t;
//typedef ::int64_t int64_t;
//typedef ::uint64_t uint64_t;
//}
#endif
第二步,找到:
/usr/local/include/opencv2/highgui/highgui_c.h
修改139行左右的代码:
CVAPI(cv::Rect)cvGetWindowImageRect(const char* name);
修改类型为:
CVAPI(CvRect)cvGetWindowImageRect(const char* name);
这两步做完以后,再在darknet文件夹下执行make命令,应该就能编译通过了。编译通过以后别忘了把修改过的代码改回来,因为不知道以后什么时候万一还会用到,到时候忘了自己改过这里的话会很麻烦。
参考
https://zhuanlan.zhihu.com/p/36933700
YOLOv3的Darknet在OpenCV3.4.1(bug)下编译出错填坑的更多相关文章
- yolov3和darknet opencv版编译安装及基本测试
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 一.准备工作: 安装pkg-config:sudo apt-get install pkg-confi ...
- 在CUDA8.0下编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)
在CUDA8.0下编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0(网上有 ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
- Vue的 $parent,并不能准确找到上一层的控件,所以如果需要,需要填坑这个 bug,递归寻找下上级
Vue的 $parent,并不能准确找到上一层的控件,所以如果需要,需要填坑这个 bug,递归寻找下上级 // Find components upward function findComponen ...
- [转]前人挖坑,后人填坑—如何把那些bug挖掘出来
当我们放下一个项目转投下一个时,手头的东西就要转交给他人处理,或者..不再有人处理,可代码还在那里,搞不好你就引用了别人的东西,保不准哪天别人的代码里就爆出了个大 bug,当然这里的“别人”也可能是 ...
- YOLOv3配置(win10+opencv3.40+cuda9.1+cudnn7.1+vs2015)
最近心血来潮想学一下YOLOv3,于是就去网上看了YOLOv3在win10下的配置教程.在配置过程中塌坑无数,花了很多时间和精力,所以我想就此写一篇博客来介绍在在win10+vs2015的环境下如何配 ...
- YOLOV3中Darknet中cfg文件说明和理解
今天将要说明的是Darknet中的cfg文件,废话少说,直接干!(以cfg/yolov3.cfg为例,其它类似) [net] ★ [xxx]开始的行表示网 ...
- 项目中遇到的各种bug和踩过的坑
zepto 赋值时单位转换问题 zepto 的 animate 方法移动某个元素的位置时,例如修改某个绝对定位的元素的 left 值,要与修改前的值单位一致,修改前如果是像素值,修改后也要是像素值,否 ...
- OSX下编译安装opencv3.1.0与opencv_contrib_master
OSX版本10.11.3 1.安装homebrew,打开终端,写入指令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Hom ...
随机推荐
- Java写学生管理系统
package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2]; for (int i=0;i<s ...
- Django2.0 应用 Xadmin 报错二
以上错误是运行点击添加数据等报异常,全是度年解决,并记录解决方法 1.报异常 ‘某个字段类型 ‘ object has no attribute ‘rel‘,点击报异常的地方,把.rel 修改为.re ...
- 深入浅出GNU X86-64 汇编
深入浅出GNU X86-64 汇编 来源 https://blog.csdn.net/pro_technician/article/details/78173777 原文 https://www3.n ...
- CPU vector operations
CPU vector operations 原文:https://blog.csdn.net/wangeen/article/details/8602028 vector operations 是现代 ...
- Java Web-JSP学习
Java Web-JSP学习 概念 Java Server Pages:Java服务器端页面.可以在其中直接定义HTML标签,也可以在其中直接定义java代码. 关于JSP和JAVASCRIPT的区别 ...
- C++ STL 之 vector
#include <iostream> #include <vector> using namespace std; void printVector(vector<in ...
- HTML5学习:表格
HTML代码 <table> <thead> <tr> <th>标题1</th> <th>标题2</th> < ...
- Hadoop_32_HDFS高可用机制
1.高可靠概念 HA(High Available):高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动 节点及备用节点 2.Hadoop的HA运作机制: :正式引入 ...
- 05_Redis_List命令
一:Redis 列表(List) -- LinkedList Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边):一个列表最多可以包含 232 ...
- java.io.IOException: Broken pipe
最近项目虽然已经在正常运行,但是偶尔会有一些不知名的错误冒出来,比如时不时报一个数据库主键重复或者某些时候会有null的异常报出来.看看代码写完能跑起来还只是开始而已,需要不断精进重构,才能让代码运行 ...