windows10+libtorch1.0.0 cpu版本+opencv4.0.0 cmake安装编译

2023-11-01

前期准备

下载cmakehttps://cmake.org/download/ #安装时手动更改选项以添加到环境变量中
下载libtorchhttps://pytorch.org/get-started/locally/
下载opencvhttps://opencv.org

配置CmakeLists

新建一个名为CMakeLists.txt的文件,内容如下:

cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
project(test)

set(CMAKE_PREFIX_PATH "G:\\Program Files\\libtorch-win-shared-with-deps-latest\\libtorch\\share\\cmake\\Torch")
find_package(Torch REQUIRED)
find_package(OpenCV REQUIRED)

if(NOT Torch_FOUND)
    message(FATAL_ERROR "Pytorch Not Found!")
endif(NOT Torch_FOUND)

message(STATUS "Pytorch status:")
message(STATUS "    libraries: ${TORCH_LIBRARIES}")

message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")


add_executable(test main.cpp)
target_link_libraries(test ${TORCH_LIBRARIES} ${OpenCV_LIBS})
set_property(TARGET test PROPERTY CXX_STANDARD 11)

其中“test”是项目名称,CMAKE_PREFIX_PATH 要根据自己下载libtorch的地址进行更改。

cmake编译所需目录结构

新建一个文件夹,将CmakeLists.txt放入其中,并新建其他文件,目录结构如下:
在这里插入图片描述
build是一个空的文件夹,编译好的文件都会放在里面,main.cpp就是工程的主函数。

cmake编译

在编译之前需要在环境变量中添加OpenCV_DIR这个变量,值需要按自己的地址更改。
在这里插入图片描述
如果不进行这种更改,会出现not providing “*.cmake” in CMAKE_MODULE_PATH类的错误。

打开命令行界面,进入build文件夹。
编译命令如下:

cmake -DCMAKE_PREFIX_PATH=G:\Program Files\opencv-4.0.0-vc14_vc15\build\x64\vc15\lib;G:\Program Files\libtorch-win-shared-with-deps-latest\libtorch -DCMAKE_BUILD_TYPE=Release -G"Visual Studio 15 Win64" ..

根据个人环境的不同做适当修改,DCMAKE_PREFIX_PATH改成自己的opencv路径,-G后面的内容也需要更改,这两个都是根据不同vs版本更改,本人环境是vs2017,如果是2015需要将opencv路径中的vc15改成vc14,-G后面的内容改成"Visual Studio 14 Win64" 。分号后是libtorch的路径,也需要修改,编译方式是release

编译完成后的文件夹内容如下:
在这里插入图片描述
打开test.vcxproj,进入工程:
在这里插入图片描述
需要将该test这个项目设为启动项(右键test可以设置)。

如果编译成功后,运行.cpp显示程序无法启动ALL_BUILD 拒绝访问,则将ALL_BUILD和ZERO_CHECK右键卸载项目。

如果报错找不到dll文件,则将libtorch\lib文件夹中相应的dll文件复制到项目文件夹下\build\Release中即可。

用vs运行.cpp时要讲解决方案配置改为Release x64的方式。

参考

1.https://zhuanlan.zhihu.com/p/55292836
2.https://blog.csdn.net/jacke121/article/details/88708680
3.https://www.douban.com/note/511006818/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows10+libtorch1.0.0 cpu版本+opencv4.0.0 cmake安装编译 的相关文章

随机推荐

  • 也谈分离JavaScript和HTML

    不知道能不能将JavaScript和HTML的分离也归结为 你必将业务逻辑由显示中分离 thou shalt separate business logic from display 1 的问题 但有HTML和CSS的分离在前面对照 它们的
  • java mysql 项目_mysql数据库如何实现与Java项目连接

    mysql数据库如何实现与Java项目连接 发布时间 2020 11 09 16 47 40 来源 亿速云 阅读 68 作者 Leah mysql数据库如何实现与Java项目连接 很多新手对此不是很清楚 为了帮助大家解决这个难题 下面小编将
  • Python发送邮件

    Python3 SMTP 发送邮件 在现代社会 邮件已经成为了人们重要的沟通方式之一 Python3 提供了 SMTP 库 使得发送邮件变得非常容易 本文将介绍如何使用 Python3 中的 SMTP 库来发送邮件 SMTP 简介 SMTP
  • 虚拟机VMwar报错:您没有查看“hgfs“的内容所需的权限解决

    取消挂载 sudo umount mnt hgfs 再指定用户和组挂载 sudo vmhgfs fuse host mnt hgfs o allow other o uid 1000 o gid 1000 o umask 022
  • 深入理解Solidity——Using for

    指令using A for B 用来附着库里定义的函数 从库A 到任意类型B 这些函数将会默认接收调用函数对象的实例作为第一个参数 语法类似 python中的self变量一样 using A for 的效果是 库A中的函数被附着在做任意的类
  • 线性模型

    本文为自己学习 西瓜书 时做的一些笔记 方便知识点的梳理复习 线性模型 定义 学的一个通过属性的线性组合来进行预测的函数 形式 函数 向量 优点 模型简单 已于建模 蕴含着机器学习中一些基本思想 一些强大的非线性模型可以通过引入层级结构或高
  • 虚拟服务器修改教程,飘渺雪域商业一键虚拟端+修改元宝教程【无标题亲测

    1 解压服务端到硬盘 2 安装VM9虚拟机 有说明 VM8的IP 192 168 200 0 虚拟机 VM8 模式 为 NAT 3 VM9 gt 打开虚拟机 gt 找到服务端镜像 gt 打开 gt 打开此虚拟机电源 gt 移动 第一次 gt
  • CNN图片分类(Pytorch)

    这篇文章主要讲述用 pytorch 完成简单 CNN 图片分类任务 如果想对 CNN 的理论知识进行了解 可以看我的这篇文章 深度学习 一 CNN卷积神经网络 图片分类 我们以美食图片分类为例 有testing training valid
  • Ubuntu搭建开发openchannelssd的qemu的虚拟机

    1 安装带有NVMe支持的qemu QEMU Installation QEMU support for Open Channel SSDs is based on top of Keith Busch s qemu nvme branch
  • Selenium

    第一章 Selenium 概述 1 1 Selenium 发展史 Selenium是一系列基于Web的自动化工具 提供一套测试函数 用于支持Web自动化测试 函数非常灵活 能够完成界面元素定位 窗口跳转 结果比较 具有如下特点 多浏览器支持
  • 区块链笔记分享:

    区块链笔记分享 技术和数学基础 1 高位的hash的逆向过程除了穷举 没有更有效的办法 这个过程在目前的计算能力下必然费时费力 2 不对称的加密 公钥和私钥的签名机制 PoW 1 记帐中调整once 得到符合规则的所花费的工作 2 谁计算得
  • brew install下载资源网络总是中断怎么办

    问题 在mac系统下用brew install命令安装软件的时候 下载资源总是下到一半就中断了 导致一直安装不上 解决思路 先手动下载安装资源 再执行brew install安装 具体流程 1 下载对应资源 brew下载资源失败的时候会提示
  • 【Python开发】一文详解Flask-Login

    一文详解Flask Login Flask Login 为 Flask 提供用户会话管理 它处理登录 注销和长时间记住用户会话等常见任务 Flask Login 不绑定到任何特定的数据库系统或权限模型 唯一的要求是您的 用户对象实现一些方法
  • JUC并发编程(超详细)

    随着对Java的深入学习 越发觉得JVM和JUC这些底层原理的重要性 在看完黑马程序员的JVM后 也对JUC产生了浓厚的兴趣 在学习JUC的过程中 通过老师的视频做笔记 在遇到一些不懂的或者想更深入了解的知识时 自己也去搜索了很多资料 再把
  • MySQL数据库-更新表中的数据详解

    更新书记记录是数据操作中常见的操作 可以更新表中已经存在数据记录中的值 在MySQL中可以通过UPDATE语句来实现更新数据记录 该SQL语句可以通过如下几种方式使用 更新特定数据记录 更新所有数据记录 更新特定数据记录 在MySQL中更新
  • java数组初始化

    package equality public class demo5 public static void main String args int a1 1 2 3 4 5 int a2 a2 a1 将a1的数组赋给a2两者指向同一个数
  • 脚本检查 CentOS 系统信息

    脚本信息 bin bash auth lsr zds func sys info check version v1 0 sys centos6 x 7 x id u gt 0 echo 请用root用户执行此脚本 exit 1 sysver
  • 解决scrapy不执行Request回调函数callback

    情况1 未完成函数 测试函数 那个函数没有任何结果返回 可能这就是一个测试函数或是没写完的函数 因此只需要在这个函数结尾加一个yield就可以了 回调另一个空的函数就不会有任何影响 coding gbk def parse self res
  • javascript中获取上传文件的文件名称

    有时js中需要获取刚上传的文件的文件名称 都是带有后缀的 现在需要获取的是不带后缀名的 var file name1 上传的文件名称 带后缀名 var file name2 需获取的文件名 不带后缀名 var suffix 后缀名 file
  • windows10+libtorch1.0.0 cpu版本+opencv4.0.0 cmake安装编译

    目录 前期准备 配置CmakeLists cmake编译所需目录结构 cmake编译 参考 前期准备 下载cmake https cmake org download 安装时手动更改选项以添加到环境变量中 下载libtorch https