Windows下安装libtorch与Clion配置

news2025/1/17 3:00:08

Windows 安装和使用libtorch

1.下载libtorch

libtorch的下载链接,如下图所示,libtorch有release和debug版本可以选择。为了方便调试,下debug版。电脑上没CUDA,下次有需要再更新吧。

在这里插入图片描述

2.libtorch使用

在Visual Studio的使用可以参考博客[1],本人使用Clion,下面是Clion是配置方式。

  1. 创建新项目,目录如图,打开CmakeList
    在这里插入图片描述
  2. 按照官方文档,填写CMakeLists.txt,其中E:/libtorch是我的解压路径,改为自己的就好。
    set(CMAKE_PREFIX_PATH E:/libtorch)
    #set(Torch_DIR "E:/libtorch/share/cmake/Torch")
    #include_directories("E:/libtorch/include")
    #include_directories("E:/libtorch/include/torch/csrc/api/include")
    find_package(Torch REQUIRED )
    
    add_executable(Cpp_Libtorch_CRN main.cpp)
    target_link_libraries(Cpp_Libtorch_CRN "${TORCH_LIBRARIES}")
    set_property(TARGET Cpp_Libtorch_CRN PROPERTY CXX_STANDARD 14)
    
    if (MSVC)
        file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll")
        add_custom_command(TARGET Cpp_Libtorch_CRN
                POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy_if_different
                ${TORCH_DLLS}
                $<TARGET_FILE_DIR:Cpp_Libtorch_CRN>)
    endif (MSVC)
    

3. 错误与解决

错误1

讲道理到这里就可以了,但是报错了,错误信息如下。找了好多博客文档,要么在unix上配置,要么在vs上配置。在windows-clion上的没找到。这里报了个莫名的错误,在知乎找到一篇同样错误的,多久了也不放后续,麻了。(不放解决方法,就单纯为了记录错误?记录意义是什么呢?吐槽一下)

"E:\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug "-DCMAKE_MAKE_PROGRAM=E:/CLion 2022.2.4/bin/ninja/win/ninja.exe" -G Ninja -S C:\Users\65181\CLionProjects\Cpp_Libtorch_CRN -B C:\Users\65181\CLionProjects\Cpp_Libtorch_CRN\cmake-build-debug
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: E:/CLion 2022.2.4/bin/mingw/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: E:/CLion 2022.2.4/bin/mingw/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found Torch: E:/libtorch/lib/torch.lib  
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/65181/CLionProjects/Cpp_Libtorch_CRN/cmake-build-debug

Problems were encountered while collecting compiler information:
	cc1plus.exe: fatal error: /Z7: No such file or directory
	cc1plus.exe: fatal error: /EHsc: No such file or directory
	cc1plus.exe: fatal error: /DNOMINMAX: No such file or directory
	cc1plus.exe: fatal error: /wd4267: No such file or directory
	cc1plus.exe: fatal error: /wd4251: No such file or directory
	cc1plus.exe: fatal error: /wd4522: No such file or directory
	cc1plus.exe: fatal error: /wd4838: No such file or directory
	cc1plus.exe: fatal error: /wd4305: No such file or directory
	cc1plus.exe: fatal error: /wd4244: No such file or directory
	cc1plus.exe: fatal error: /wd4190: No such file or directory
	cc1plus.exe: fatal error: /wd4101: No such file or directory
	cc1plus.exe: fatal error: /wd4996: No such file or directory
	cc1plus.exe: fatal error: /wd4275: No such file or directory
	cc1plus.exe: fatal error: /bigobj: No such file or directory

[Finished]

解决方法:

咨询了一下用过的同学,他之前在mac上配的,但是也是和我一样用的mingw64,说似乎是libtorch不支持wingw?具体也不清楚。于是还是没逃过下载vs的命运(可以单独下msvc但是麻烦)。
下载之后在Setting->Build,Execution,Deployment->ToolChains里面添加编译器,选择Visual Studio,正常安装好VS之后会自动查找地址,不行就自己指定一下。
在这里插入图片描述
错误2

====================[ Build | Cpp_Libtorch_CRN | Debug ]========================
"E:\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" --build C:\Users\65181\CLionProjects\Cpp_Libtorch_CRN\cmake-build-debug --target Cpp_Libtorch_CRN -j 6
[1/2] Building CXX object CMakeFiles\Cpp_Libtorch_CRN.dir\main.cpp.obj
FAILED: CMakeFiles/Cpp_Libtorch_CRN.dir/main.cpp.obj 
C:\PROGRA~1\MICROS~2\2022\PROFES~1\VC\Tools\MSVC\1434~1.319\bin\Hostx86\x86\cl.exe  /nologo /TP -DUSE_C10D_GLOO -DUSE_DISTRIBUTED -external:IE:\libtorch\include -external:IE:\libtorch\include\torch\csrc\api\include -external:W0 /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd /Z7 /EHsc /DNOMINMAX /wd4267 /wd4251 /wd4522 /wd4838 /wd4305 /wd4244 /wd4190 /wd4101 /wd4996 /wd4275 /bigobj /showIncludes /FoCMakeFiles\Cpp_Libtorch_CRN.dir\main.cpp.obj /FdCMakeFiles\Cpp_Libtorch_CRN.dir\ /FS -c C:\Users\65181\CLionProjects\Cpp_Libtorch_CRN\main.cpp
cl: 命令行 warning D9025 :正在重写“/Zi”(用“/Z7”)
E:\libtorch\include\c10/util/safe_numerics.h(25): error C3861: “_addcarry_u64”: 找不到标识符
ninja: build stopped: subcommand failed.

解决方法
似乎是这个函数在32位里是没有的,所以要编译64位的,还是按这个图中Architecture改为64就可以了。
在这里插入图片描述

4. 测试样例

写一个官方的测试样例,到这里就可以用了。后面不知道还会出什么幺蛾子,先用着到时候再说了

#include <torch/torch.h>
#include <iostream>

int main() {
    std::cout << 1 << std::endl;
    torch::Tensor a = torch::rand({2, 3});
    std::cout << a << std::endl;
}
==>
1
 0.3635  0.2281  0.2088
 0.2662  0.0971  0.0297
[ CPUFloatType{2,3} ]

Process finished with exit code 0

参考链接

[1] Libtorch的介绍与使用方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生周刊 | 让 ChatGPT 以电子邮件的方式来解释 KubeSphere

过去的一周是 ChatGPT 的狂欢&#xff0c;我猜每一位云原生玩家都很好奇他是如何看待 Kubernetes 的。咱们不防换个方式来提问&#xff0c;让它使用电子邮件的方式来向别人推荐 KubeSphere 和 OpenFunction。 开源项目推荐 Tailscale Ingress Controller 这是针对 Tailscale …

【DevOps实战系列】第七章:详解Docker私服Harbor篇

个人亲自录制全套DevOps系列实战教程 &#xff1a;手把手教你玩转DevOps全栈技术 Harbor私服搭建 讲完Nexus3再来看下harbor&#xff0c;其实大同小异&#xff0c;只不过harbor的管理要比Nexus3更专业、功能更完善&#xff0c;大家按需选择即可&#xff0c;Nexus的优势是他能和…

web网站工程项目前期需求分析与规划怎么写?

在当下&#xff0c;判断一份网站工程项目文档是否优秀&#xff0c;项目目录是最直接的体现&#xff0c;同时&#xff0c;工程说明、需求分析和项目规划各版块的内容都缺一不可。工欲善其事必先利其器&#xff0c;前期准备得越充分&#xff0c;后期就会越顺利。 本期&#xff0c…

Centos7安装图形化界面并使用Windows远程桌面连接(包含离线部署)

一、在centos7 中部署远程桌面所使用的程序 1、关闭防火墙和selinux(xrdp是通过3389端口远程桌面连接 ) [rootlocalhost ~]# systemctl stop firewalld #临时关闭防火墙 [rootlocalhost ~]# systemctl disable firewalld.service #永久关闭防火墙 [rootlocalhost ~]# setenf…

SpringMVC:SpringMVC之JSON数据传输参数(5)

JSON数据传输参数1 JSON数据传输参数2 JSON普通数组3 JSON对象数据4 JSON对象数组5 小结1 JSON数据传输参数 现在比较流行的开发方式为异步调用。前后台以异步方式进行交换&#xff0c;传输的数据使用的是JSON,所以前端如果发送的是JSON数据&#xff0c;后端该如何接收? 对于…

面试官:单体架构怎么向分布式微服务架构演变的?(8000字干货)

随着网站规模越来越大&#xff0c;单体应用往往很难再满足要求&#xff0c;就需要向分布式&#xff0c;微服务架构演变。 那么这个演变过程是怎么样的呢&#xff1f;都涉及到哪些组件&#xff0c;会遇到哪些问题&#xff0c;以及相应的解决方案都是什么&#xff0c;本篇文章就…

ESP 低功耗入门

此篇博客以 ESP32 为例来说明 ESP 的睡眠模式。 ESP32 芯片可以大致分成以为五个模块&#xff1a; RF 模块&#xff0c;也就是射频模块&#xff0c;用于蓝牙 / Wi-Fi 的收发(TX / RX)功能。CPU&#xff0c;如 Xtensa 内核 (ESP32 / ESP32-S2 / ESP32-S3)&#xff0c;RISC-V 内…

ssm项目-商城管理系统

1 逆向工程设计 1.1 xml文件配置&#xff08;generatorConfig.xml&#xff09; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"&q…

滑动窗口的最大值【滑动窗口问题】

文章目录题目解题思路代码展示题目 给定一个长度为 n 的数组 num 和滑动窗口的大小 size &#xff0c;窗口从最左边滑动到最右边&#xff0c;每次向右边滑动一个位置&#xff0c;找出所有滑动窗口里数值的最大值。 窗口大于数组长度或窗口长度为0的时候&#xff0c;返回空 数…

硬件需知知识 -- 基本元件(电阻)

一、电阻 1.1 贴片电阻 1.1.1 贴片电阻的封装大小是和功率时相关的。 封装大小功率(W)0201120\frac{1}{20}201​0402116\frac{1}{16}161​0603110\frac{1}{10}101​080518\frac{1}{8}81​12060.2518120.5或1201012\frac{1}{2}21​25121或者21.1.2 贴片电阻读数 贴片电阻的读数…

Spring Security 竟然可以同时存在多个过滤器链?

目录Spring Security 中的过滤器多个过滤器链多个过滤器链配置例子http.authorizeRequests() 开头是什么意思&#xff1f;引用Spring Security 中的过滤器 Spring Security 中认证、授权功能的实现机制是通过过滤器来实现的。Spring Security 中一共提供了 32 个过滤器&#x…

Nacos集群版本安装(三)

一、前言 注&#xff1a;我这里的nacos集群安装环境使用的是本地MacOs系统&#xff0c;使用的是同一个IP不同端口&#xff0c;这里就不再讲解具体的目录结构之内的了&#xff0c;下面我们开始演示具体的配置和安装。了解nacos单机版本安装 二、nacos集群安装部署&#xff1a; …

Redis常见面试题(二)

目录 1、Redis和Memcached有什么区别? 2、Redis支持哪些数据类型? 3、Redis支持JSON数据类型吗?为什么? 4、Redis模块系统有什么用? 5、Redis支持对象映射模型吗? 6、Redis默认支持多少个数据库?怎么修改? 7、Redis SET命令可以代替SETNX吗? 8、Redis单个实例最…

【浅学Java】索引的分类、创建、删除以及新特性

索引的创建和设计原则1. 索引的分类1.1 普通索引1.2 唯一性索引1.3 主键索引1.4 单列索引1.5 多列&#xff08;联合&#xff0c;组合&#xff09;索引1.6 全文索引2. 索引的创建2.1 创建表时创建索引1. 隐式创建2. 显式创建3. 全文检索2.2 创建表后创建索引1. alter table 的方…

基于java(ssm)家教管理平台(java毕业设计)

基于java&#xff08;ssm&#xff09;家教管理平台 家教管理&#xff0c;是基于java变成语言&#xff0c;mysql数据库&#xff0c;ssm框架和idea工具开发&#xff0c;本系统分为用户&#xff0c;管理员&#xff0c;教师三个角色&#xff0c;其中用户可以注册&#xff0c;登陆&…

网络工程师之海明校验

海明校验&#xff08;又称汉明码&#xff09; 基本思想 将有效信息按某种规律分成若干组&#xff0c;每组安排一个校验位&#xff0c;做奇偶测试&#xff0c;就能提供多位检错信息&#xff0c;以指出最大可能是哪位出错&#xff0c;从而将其纠正。 特点 它不仅具有检测错误的…

深入浅出网络编程TCP,UDP,Socket,Http网络编程面试题

目录 什么是网络编程 网络编程中的主要问题 计算机网络体系结构 TCP / UDP Socket HTTP 什么是网络编程 网络编程中的主要问题 计算机网络体系结构 OSI参考模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互联。一般都叫OSI参考模型&…

Geoserver提示HTTP ERROR 503 Service Unaviaiable以及Context initialization failed

场景 GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)&#xff1a; GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)_霸道流氓气质的博客-CSDN博客_geoserver简介 geoserver版本为2.19.2&#xff0c;在windows10系统中正常启动并运行后&#…

教程篇 | 史上最简单也最全新手Revit教程

Hi&#xff0c;朋友们&#xff0c;我是建模助手。 近期发现&#xff0c;后台留言的画风日渐扭曲&#xff0c;很多用户的私信内容不仅跟有求必应无关&#xff0c;甚至跟建模助手也无关&#xff0c;而是关于Revit的问题。&#xff08;这就很离谱了&#xff09; 但后来小编也算是…

MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

1、存储引擎 1.1、MySQL体系结构 连接层&#xff1a;最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理、授权认证以及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层&#xff1a;第二层架构主要完成大多数的核心服务功…