Debug+yolo_tensorrt项目

上一篇文章成功release yolo_tensorrt项目,下面进行debug
链接添加链接描述

1.修改运行格式,Debug x64

在这里插入图片描述

2.配置CUDA生成自定义项目

右击项目dll_detector,选择 生成依赖项->生成自定义。只选择CUDA10.2那一项,其他项取消。
test_dll同理
在这里插入图片描述

3 配置属性表

在这里插入图片描述
tensorrt_7.0和cuda10.2的属性表都与上篇博客相同
新建opencv_debug属性表
-配置opencv属性表
包含目录: C:\Users\freeyu\Documents\opencv-4.1.2\build\include\opencv2
C:\Users\freeyu\Documents\opencv-4.1.2\build\include

库目录: C:\Users\freeyu\Documents\opencv-4.1.2\build\x64\vc15\lib
附加依赖项:(只有这一项,不能有opencv_world412d.lib项,在文末的踩坑中有说明)
opencv_world412d.lib

4.生成dll_detector

会遇见下面的错误,一一进行修改
在这里插入图片描述

4.1 无法打开包括文件

问题:
C1083 无法打开包括文件: “class_timer.hpp”: No such file or directory
C1083 无法打开包括文件: “API.h”: No such file or directory
原因: API.h,class_timer.hpp和dll_detector其他文件不在一个目录下

解决方案:
参考链接:https://blog.csdn.net/lidar7956/article/details/107672458

右击dll_detector项目,C/C++ -->附加包含目录–>编辑
添加extra目录:C:\Users\freeyu\Desktop\learn\yolo-trt\extra

(这是我的目录) API.h,class_timer.hpp在extra文件夹下。
在这里插入图片描述

4.2 filesystem代码错误

项目->dll_detector->右击->属性->C/C+±>预处理器->预处理器定义->编辑
添加“_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING”

4.3 新错误strcpy

重新生成dll_detector,发现下面的错误
C4996 ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead.
在这里插入图片描述
解决方案:
参考链接:https://www.cnblogs.com/pquan/p/10989029.html
项目->dll_detector->右击->属性->C/C+±>预处理器->预处理器定义->编辑
添加“_CRT_SECURE_NO_WARNINGS”

在这里插入图片描述

4.4 新错误 configBatchSize

重新生成dll_detector,发现下面的错误
C4700 使用了未初始化的局部变量“configBatchSize”
在这里插入图片描述
解决方案:yoloplugin_lib.cpp的110行configBatchSize后面加上“{}”
这个是VS提醒修改的
在这里插入图片描述

4.5 新错误 必须定义入口点

重新生成dll_detector,发现下面的错误
LNK1561 必须定义入口点

在这里插入图片描述
原因:这是因为主项目是test_dll项目,所以dll_detector要生成的是动态库.dll而不是可执行文件exe
解决方案:右击dll_detector项目,配置属性–>常规–>配置类型:动态库
在这里插入图片描述

重新生成dll_detector,生成成功。
在这里插入图片描述

5.生成test_dll

5.1 错误1

C1083 无法打开包括文件: “class_timer.hpp”: No such file or directory
C1083 无法打开包括文件: “class_detector.h”: No such file or directory

解决方案: 右击dll_detector项目,C/C++ -->附加包含目录–>编辑
添加extra目录:C:\Users\freeyu\Desktop\learn\yolo-trt\extra(这是我的目录)
添加modules目录:C:\Users\freeyu\Desktop\learn\yolo-trt\modules

5.2 错误2

LNK1120 4 个无法解析的外部命令
在这里插入图片描述
解决方案: test_dll下面的引用,右击添加引用
在这里插入图片描述
生成成功
在这里插入图片描述

6 运行项目

6.1 错误1:无法启动程序,不是有效的win32 应用程序

在这里插入图片描述

解决方案:test_dll 右击选择 设为启动项目

6.2 错误2:找不到cfg文件

在这里插入图片描述

修改代码中路径,改成绝对路径
这里我使用的是yolov4的权重,修改sample_detector.cpp代码如下
在这里插入图片描述
图片路径
在这里插入图片描述

6.3 别忘记加权重

在configs文件夹中加入yolov4.weights
运行程序会得到yolov4-kFLOAT-batch1.engine文件
在这里插入图片描述

6.4 运行成功

在这里插入图片描述

踩坑:absort() has been called

参考链接:https://blog.csdn.net/weixin_44312186/article/details/88991831
这个链接的评论拯救了我
在opencv的属性表中,连接器-输入-附加依赖 在opencv_world410.lib 与opencv_world410d.lib 中删掉opencv_world410.lib 最终解决
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值