前言
在windows下编译好 tensorRTx 的yolov5程序,其目录架构是这样的:
进入yolov5目录后如下:
进入build目录后如下:
整个目录结构有些复杂,如果想让项目看着更加清爽一些,有如下两种方式:
一、直接在tensorRTx项目中更改【未尝试过,理论上操作会更加简单些】
1、在tensorrtx/yolov5/build目录中创建新目录 include,并把tensorrtx/yolov5目录中的代码拷贝到这个include目录中。
2、将tensorrtx/yolov5目录下的build目录单独拷贝出来,右击项目打开属性,在配置属性- C/C++ 处修改附加包含目录,只需要修改为第1步中的include目录即可。可以用相对路径。
3、在配置属性- CUDA C/C++ 处修改附加包含目录,只需要修改为第1步中的include目录即可。可以用相对路径。
4、保留yolov5项目,其他两个删除即可。
5、修改解决方案 和 项目名称。
二、重建项目,将tensorRTx 的yolov5项目转移出来【已尝试可用】
1、新建空项目YJ-Intelligent-Detection
2、在项目根目录创建目录include,把tensorrtx/yolov5目录中的代码拷贝到这个include目录中;
3、在项目中添加这些代码;
4、生成自定义文件
解决方案资源管理器->右击项目名称->生成依赖性->生成自定义
会弹出如下弹框:
勾选需要的CUDA,点击确定即可。
5、配置cu文件
右击yololayer.cu文件进入属性页,选择 “项类型”为 CUDA C/C++ 即可。
6、用vs打开tensorrtx/yolov5/build/yolov5.sln,按照此项目中所有的配置,对项目YJ-Intelligent-Detection的配置全部配置一遍。
7、右击项目打开属性,在配置属性- C/C++ 处修改附加包含目录,只需要修改为第2步中的include目录即可。可以用相对路径。
8、右击项目打开属性,在配置属性- CUDA C/C++ 处修改附加包含目录,只需要修改为第2步中的include目录即可。可以用相对路径。
9、如果报错【无法找到“cudadevrt.lib”】 或 【无法找到“cudart_static.lib”】,可以右击项目打开属性,在配置属性 - 链接器 - 输入 处修改,将cudadevrt.lib和cudart_static.lib路径设置为绝对路径:
10、右击项目打开属性,在配置属性 - C/C++ - 预处理器 - 预处理器定义处增加宏
NOMINMAX
11、如果报错
【无法解析的外部符号 "public: __cdecl nvinfer1::YoloPluginCreator::YoloPluginCreator(void)" (??0YoloPluginCreator@nvinfer1@@QEAA@XZ)】
则按照第4步、第5步配置一下即可。
参考链接:https://blog.csdn.net/jacke121/article/details/109212123