博客
关于我
使用vs2019将libtorch打包为dll(环境:win10+vs2019+libtorch-cuda10.1)
阅读量:594 次
发布时间:2019-03-11

本文共 1337 字,大约阅读时间需要 4 分钟。

在 Windows 环境中,使用 VS2019 将 libtorch 打包为 DLL 的具体步骤如下:

一、创建项目

首先,在 VS2019 中创建一个新的项目,选择“空项目”或“动态库项目”,确保开发环境正确配置,建议使用 x64 自选,以支持更好的性能。

二、设置编译器和环境

  • 在项目的属性中,确保工具的版本符合要求,建议使用`${env}``中的最新版本 собира该项目。
  • 在调试器设置中,使用 x64 作为默认平台,这样可以避免因目标平台不匹配导致的性能问题。
  • 三、代码和文件配置

    1. 不使用预编译头文件

    安全提示:请注意,为了规范编译环境,建议删除或注释掉 ${env}中的预编译头文件(如pch.hpch.cpp`),编译时使用标准的头文件处理方式。

    2. 新建头文件和源文件

    创建一个新建头文件 TestDLL.h,在其中添加以下代码:

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

    这里,extern "C" 使得编译器将模块视为 C 语言接口,__declspec(dllexport) 告诉编译器该函数需要被导出到 DLL 中供其他程序调用。

    创建一个新的源文件 TestDLL.cpp,在其中添加以下内容:

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

    注意:这是一个简单的示例,围绕实际项目需求进行扩展。

    四、编译项目

  • 确保所有必要的库和头文件路径已被添加到项目属性中。
  • 在 VS2019 中使用合适的编译选项,编译 TestDLL.cpp,如果是动态库,可选是否添加调试辅助步骤。
  • 编译完成后,生成的 DLL 可以通过项目的输出文件夹找到。
  • 五、创建调用 DLL 的控制台程序

  • 创建一个新的控制台项目,在项目属性中选择 Console 提升。
  • TestDLL.h 和编译出的 TestDLL.lib/TestDLL.dll 作为依赖添加到新项目中。
  • main.cpp 文件中添加以下代码:
  • #include "TestDLL.h"
    int main() {
    MyTest();
    return 0;
    }

    注意:记得将需要使用 extern "C" 调用的函数前添加相应声明,确保编译环境支持 DLL 调用。

    六、执行操作

  • 在控制台程序项目中,右键点击 main.cpp 文件,启动 Properties 边栏,添加必要的就绪阶段和库文件导入项。
  • 如果遇到符号错误,例如 MyTest 未被找到,需在项目属性中手动添加相关的导入路径或依赖项目。
  • 完成以上步骤后,编译代码并运行,确保 DLL 函数能够正常工作。如果遇到问题,请回到项目属性检查编译环境设置是否正确。

    注:在此过程中,excludingис扶墙走必要的验证步骤是重要的,确保编译和调试环境的正确配置。

    转载地址:http://cwctz.baihongyu.com/

    你可能感兴趣的文章
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 事务知识点与优化建议
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>
    MySQL 优化:Explain 执行计划详解
    查看>>
    Mysql 会导致锁表的语法
    查看>>
    mysql 使用sql文件恢复数据库
    查看>>
    mysql 修改默认字符集为utf8
    查看>>
    Mysql 共享锁
    查看>>
    MySQL 内核深度优化
    查看>>
    mysql 内连接、自然连接、外连接的区别
    查看>>
    mysql 写入慢优化
    查看>>
    mysql 分组统计SQL语句
    查看>>
    Mysql 分页
    查看>>
    Mysql 分页语句 Limit原理
    查看>>
    MySql 创建函数 Error Code : 1418
    查看>>
    MySQL 创建新用户及授予权限的完整流程
    查看>>
    mysql 创建表,不能包含关键字values 以及 表id自增问题
    查看>>
    mysql 删除日志文件详解
    查看>>
    mysql 判断表字段是否存在,然后修改
    查看>>