将darknet集成进工程时,遇到了一些问题,下面记录一下解决方法:

集成步骤:

首先在yolo编译的时候,需要将三个开关打开:

#define GPU
#define CUDNN
#define OPENCV

将编译出来的libdarknet.so以及darknet.h分别放入相应的工程文件夹中;

在CMakeLists.txt中将相应的lib路径以及include路径添加进去;

添加相应的cpp和hpp以及main函数测试代码,并修改相应的CMakeLists.txt;

编译

遇到的问题以及解决方法如下:

问题:load_network之类的函数没有定义,找不到

原因:yolo是纯c框架,工程是C++的,因此要调用的函数需要加上extern  "C" {}

解决方法:在darknet.h中用extern  "C" {}包括所有的函数定义

问题:list ambigous;

原因:在C++的标准库中有list这个容器,而在darknet.h中又定义了同名的结构体;

解决方法:将工程中全局的using namespace std;去掉,改用std::

问题:caffe::Caffe::set_mode(caffe::Caffe::GPU);在这里报错,具体忘记了是什么错误,总之就是与darknet.h中的#define GPU有关

解决方法:

#undef  GPU
    caffe::Caffe::set_mode(caffe::Caffe::GPU);
    #define GPU

问题:0号显卡运行工程的时候正常,改用1号显卡时报错:CUDA Error: an illegal memory access was encountered ./src/cuda.c:36: check_error: Assertion `0' failed.

原因:在网上搜索了相关的解决方法,一般都是将计算能力那个地方更改之后重新编译yolo,但是与我不是同样的情况,我是在调用setdeviceid的时候弄错了;

解决方法:应该先调用cuda_set_device(gpu_id);然后再调用load_network(_cfgfile, _weightfile, 0);

目前关于yolo的就是上述的这些问题;

还有另外的一些软链接找不到的问题,后来发现是连接到系统路径去了,而不是连接到同一个文件夹下的库,不知道如何造成的,只能删掉重新链接。

darknet集成遇到的问题以及解决方法的更多相关文章

  1. 无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换

    无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换 前言: Maya 集成了 PySide,同时集成了qt designer,在 Maya 的安装目录下的 bin ...

  2. ios 记录支付宝集成遇到的坑及解决方法

    今天项目中要开始动手集成支付宝支付,在此小结一下.(目前新版的支付宝SDK有较大改版,去集成还需要自己去开发平台详细的按照集成步骤来完成https://doc.open.alipay.com/docs ...

  3. 【配置】检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。

      ×   检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为[经典]模式). 我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 5 ...

  4. python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?

    python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...

  5. 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)

    我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.N ...

  6. QT visual stuido 集成插件不能打开ui文件的解决方法(去掉xml的UTF8标记)

    QT visual stuido 集成插件不能打开ui文件的解决方法 visual studio里不能打开这个ui文件,出现warning等解决方法是:于是将<?xml version=&quo ...

  7. (转)检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)

    我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.N ...

  8. 【转】检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。

    检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为[经典]模式). 我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 ...

  9. 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法

    spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...

随机推荐

  1. Effective Java 第三版—— 90.考虑序列化代理替代序列化实例

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  2. Object C函数指针@selector

    其作用相当于函数指针,现在我看到的大多说用法都是在调用某些函数需要传递一个 函数指针 参数时,使用@selector.它会在当前类里面查找selector后面所跟的函数,返回一个SEL类型的值.  S ...

  3. ComputeShader中Consume与AppendStructuredBuffer的使用

    上个月写了一篇使用像素shader返回累加信息的Trick:https://www.cnblogs.com/hont/p/9977401.html 后来无意中发现DX11/Compute shader ...

  4. UE4 Notes

    Unreal Engine 4 减少编辑器的帧率C:\Program Files\Epic Games\UE_4.19\Engine\Config\BaseEngine.ini[/Script/Unr ...

  5. Linux应该知道的技巧

    https://coolshell.cn/articles/8883.html https://www.quora.com/Linux/What-are-some-time-saving-tips-t ...

  6. 2018年中国C++大会详细日程+报名

    http://purecpp.org/detail?id=2050  

  7. golang中值类型/指针类型的变量区别总结

    转自:https://segmentfault.com/a/1190000012329213 值类型的变量和指针类型的变量 先声明一个结构体: type T struct { Name string ...

  8. 【iCore4 双核心板_uC/OS-II】例程一:认识 uC/OS-II

    一.实验说明: 本例程移值入uC/OS-II,建立三个任务,红色和绿色LED分别以固定频率闪烁,并且打开串口工具, 输出浮点数据. 二.源代码下载链接: 链接:https://pan.baidu.co ...

  9. C++ 函数模板重载

    函数模板可以像普通函数那样重载. C++ 编译器会从不同的候选中匹配一个并进行调用. 即使不涉及到模板,这种匹配的规则也很复杂,现在还有加上模板一起匹配. 先来个小例子: #include <i ...

  10. dma 测试例子

    #include <linux/module.h> #include <linux/slab.h> #include <linux/sched.h> #includ ...