LibTorch GPU版本和Qt的配置

将libtorch gpu版本编译成dll后 给qt调用 就能避免头文件异常的情况
可以将官方的CMakeList修改下

cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
project(ExampleDLL )
//指定你系统盘上的libtorch位置
set(CMAKE_PREFIX_PATH  -A x64 "X:\\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_library(ExampleDLL SHARED DLL.cpp )
target_link_libraries(ExampleDLL ${TORCH_LIBRARIES} ${OpenCV_LIBS})
set_property(TARGET ExampleDLL PROPERTY CXX_STANDARD 11)

通过这个CMakeList去编译 会提示找不到Cudnn和OpenCv的位置 你只要在CMake-Gui配置下路径地址即可 完成编译

注意此时 还是不能引入torch.h头文件 需要将其包装成函数或者类

DLL.h

extern "C"{
void TrainModel()
}


DLL.cpp

#include 

void TrainModel(){
	
	torch::Tensor t=torch::ones({1,1,3,3),torch::kFloat); 

}


在QT的.pro 的文件中引入

.pro


INCLUDEPATH+=X:/lb/DLL.h

LIBS+=X/lb/ExampleDLL.lib 

你可能感兴趣的:(Qt)