最近在搞一个程序,需要把libtorch打包成dll,让别人使用,在网上找了好久都没只有找到合适的答案,最后在一个博主大哥那里找到了,很是感激这位大哥与我们分享自己的经验,接下来我把我自己的学习过程也与大家分享一下。
一、打开vs2019,创建新项目,选择创建动态链接库。
2、配置新项目
使用Debug和x64,为什么是debug,因为我的libtorch是DeBug版本的,为什么是x64,因为x86性能支持不了。
3、不使用预编译头



4、新建头文件和cpp文件


在‘LibtorchTest.h’中编写如下代码:

#pragma once
#include <iostream>extern "C" __declspec(dllexport) void MyTest();

上面代码的功能是声明一个可被调用的函数“ MyTest()”,它的返回类型是void。

现在分析一下extern "C" __declspec(dllexport) void MyTest()
extern "C"的作用是告诉编译器将被它修饰的代码按C语言的方式进行编译

__declspec(dllexport),此修饰符告诉编译器和链接器被它修饰的函数或变量需要从DLL导出,以供其他应用程序使用;

与其相对的还有一句代码是__declspec(dllimport)此修饰符的作用是告诉编译器和链接器被它修饰的函数或变量需要从DLL导入,

最后是函数void MyTest(),它就是需要被其他程序调用的函数。

写上你的代码:

#include <iostream>
#include "TestDLL.h"
#include <torch/torch.h>
void MyTest()
{torch::Tensor tensor = torch::rand({ 5,3 });std::cout << tensor << std::endl;
}

选择生成,只需要编译,不需要运行,运行会出错,本来就无法运行。

打开文件所在位置,找到编译好的dll和lib文件
**上边是生成的库文件,

下边这个是头文件**
把这三个文件拷贝到需要调用这个dll的代码的文件夹下边



修改导入的libtorchTest.h头文件里面的代码

//修改后的代码
#pragma once
#pragma comment(lib,"TestDLL.lib")
#include <iostream>extern "C" __declspec(dllimport) void MyTest();

添加源文件


#include "TestDLL.h"int main()
{MyTest();
}

结果显示:

使用vs2019将libtorch或者网络打包成dll相关推荐

  1. 图像处理算法打包成dll

    本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 在进行一个 ...

  2. vc 将已有项目打包成dll 并应用于其他项目_.NET混淆器 Dotfuscator使用教程:保护你的应用之存档报告文件...

    Dotfuscator是一款.NET混淆器和压缩器,防止你的应用程序被反编译. 本篇文章将继续上一篇文章与大家分享保护应用程序的后续三个部分:存档报告文件.加强保护和替代方法. 存档报告文件 作为构建 ...

  3. 使用vs2019和pyinstaller将py文件打包成一个exe文件(含图标),pyinstaller安装失败解决方案

    1.什么是pyinstaller 参见这篇文章: https://gwj1314.blog.csdn.net/article/details/79775764 PyInstaller是一款可以把py解 ...

  4. py文件打包或apk_Python文件打包成exe很简单,如果安卓手机也能运行的软件你会吗...

    前言 我相信很多小伙伴都知道怎么将Python的文件打包成exe,而且这个也非常的简单,一行代码就能轻松搞定:pyinstaller -F xxx.py 但是如果我们用Python开发一个小游戏或者一 ...

  5. 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包

    原文:利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包 因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户 ...

  6. h264 裸流打包成mp4 注意事项

    需求: Android 端把网络摄像头的一段正在播放的视频流,截取保存成mp4(按录像按钮时开始录像). 实现: ffmpeg + x264 + sdl; h264 裸流 打包成MP4,在网上也有一大 ...

  7. 将Python脚本打包成可执行文件

    Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库.(Python官方的各种安 ...

  8. 怎么把一个Java应用打包成Docker镜像

    怎么把Java应用打包成Docker镜像?对熟悉Docker的同学这应该是一个很简单的问题,把项目打包成JAR包然后在Dockerfile里用ADD命令把JAR文件放到镜像里,启动命令设置执行这个JA ...

  9. 4.Android Studio项目打包成.apk文件(手机安装包)

    文章目录 1.Android打包 2.为什么要给打包的项目签名? 3.签名的主要作用 4.Android Studio打包步骤 1.Android打包 Android程序开发完后,如果要发布在互联网上 ...

最新文章

  1. 独家 | 贝叶斯信念网络初探(附链接)
  2. Linux静态IP设置
  3. 西安网络推广教大家如何提高网站抓取量?
  4. 查找 之 散列表查找(哈希表)
  5. BZOJ 1014 火星人prefix
  6. 无记忆多项式数字预失真技术
  7. PaddlePaddle训练营——公开课——AI核心技术掌握——第1章迈入现代人工智能的大门——Modern AI骨架脉络
  8. Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装
  9. [转]经典的C语言著作,“C语言四书五经”
  10. springMvc 传子 bean 中有bean
  11. Leetcode每日一题:992.sort-array-by-parity-ii(按奇偶排序数组Ⅱ)
  12. RegistryBoostry2010/2011/2012的破解方法
  13. Windows2003 WINS 服务
  14. 数字图像处理笔记⑧——纹理分析
  15. 分享8年开发经验,浅谈个人发展经历,明确自己发展方向
  16. SQL语句练习题(壹)
  17. 小猿日记(5)- 520特别篇
  18. 基于双向 GRU 的文本分类 Python 算法实战
  19. 2021年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂
  20. java获取系统dpi_Java DPI介绍

热门文章

  1. 阿里云国际版设置DNS托管和智能分流教程详解
  2. 离散数学_九章:关系(1)
  3. 史上最全面的python学生管理系统教程(二)
  4. oracle基础--建库建表
  5. 水滴筹-商业模式画布
  6. 前阿里云大数据架构师:想进去阿里云需要掌握什么技能
  7. 自动脚本以及打包,将写好的脚本打包成exe可执行文件
  8. 【原创】Visio软件绘图功能极佳----记我的第一次Visio软件绘制时序图
  9. wf信号极佳但是显示连接不到服务器,wifi信号满格却上不了网怎么办【原因及解决方法】...
  10. 浅谈ERP系统实施后如何完善企业内部控制制度建设