前言
在上篇文章中,已经介绍了怎么将python网络模型进行导出,并利用libtorch在C++端进行调用
戳我跳转.
在项目工程中,程序一般需要导出为DLL提供给第三方使用。
此时除.dll、.h、.lib文件外,需一并提供对应所需的libtorch、opencv文件夹,才能实现vs中的环境配置。(即第三方环境需与导出dll的项目一致)(libtorch+opencv+cuda+cudnn)
操作流程
一、将c++程序导出生成dll动态链接库
【1】.创建新项目—动态链接库

【2】.在项目中建立Dll1.h(名称自定)头文件
内容如下:

调试中可能出现的错误:
1、显示无法打开某某源文件
解:配置环境问题,可能某个库无法正确读取,应在相关设置中加入其路径
仔细检查



2、配置好环境后,错误依然存在
解:注意编译版本和平台的设置,需和配置环境时的设置一样,否则配置无效,错误依然存在。


3、程序没有问题,但调试时出现大量不知名错误
解:加载头文件的顺序问题,torch头文件的加载不能置于最开始(即#include <torch/script.h> )
【3】.在项目中建立Dll1.cpp(名称自定)源文件
内容如下:

【4】.开始调试

出现以下窗口,便为调试成功(因为生成文件为.dll,而不是.exe,故无法启动)

此时,在项目目录/X64/debug下将生成.dll、.lib文件

二、在c++程序中调用生成的dll动态链接库
【1】.新建项目用于测试调用上述生成的.dll文件
【2】.将上生成的lib、dll文件复制到要实现调用的项目目录下

【3】.将原始头文件复制到要实现调用的项目目录下

【4】.打开dll_test.sln,在项目中添加现有项(即上复制的头文件),打开并对其内容做相关修改

【5】.在项目中新建.cpp源文件,添加代码实现对dll的调用,如下:

【6】.点击调试

说明调用成功!!
注:该方式仅适用于在调试模式下运行,若要运行.exe文件调用dll,需将.h、.dll、.lib复制到X64/debug/文件下
常见错误:
1、显示找不到(无法打开)Dll1.lib文件
在项目—》属性—》链接器—》附加库目录中
加入.lib放置的路径
-----------tbc----------
【作者有话说】
以上内容仅为博主自主整理分享,很多内容也是来源于网络,若有侵权,请私聊告知
大家有任何问题可在评论区讨论交流~
本文详细介绍了如何将Python深度学习模型导出,并在C++项目中以DLL形式调用。步骤包括创建DLL项目、编写头文件和源文件、解决调试过程中的错误。同时,文章阐述了在C++中调用DLL动态链接库的步骤,如复制必要文件、添加头文件和修改代码。最后,提到了调试成功后的标志以及可能遇到的问题及解决方法。
2064

被折叠的 条评论
为什么被折叠?



