qt_creator完成 libtorch 12.1 cuda 版本配置排坑指南

项目场景:使用qt creator编译libtorch 时,会遇到

提示:这里简述项目相关背景:
error: C2059: 语法错误:“)” static constexpr c10::BFloat16 min() {
return c10::BFloat16(0x0080, c10::BFloat16::from_bits());
}
这个错误

原因分析:

https://blog.csdn.net/qq_43765210/article/details/134247540?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-134247540-blog-86534865.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-134247540-blog-86534865.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=2
这边文章已经给出了比较详细的解释


解决方案:

使用
#undef min
#undef max
都可以解决

同时给出关于cmakelists.txt 的详细配置
cmake_minimum_required(VERSION 3.10)
set(LIB_NAME BianYanLibtorchAnalysis)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

include(CheckLanguage)
check_language(CUDA)

set(LIB_SOURCES
CAnalysisImage.h
CAnalysisImage.cpp
BianYanLibtorchAnalysis_global.h
)

add_library(${LIB_NAME} SHARED ${LIB_SOURCES})

enable_language(CUDA)

set(CONDA_PATH “C:/Users/fengzeming/.conda/envs/pytorch”)

set(ENV{PATH} “ C O N D A P A T H / b i n : {CONDA_PATH}/bin: CONDAPATH/bin:ENV{PATH}”)
set(ENV{CONDA_PREFIX} ${CONDA_PATH})

find_package(CUDA REQUIRED)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -std=c++17)
set(CMAKE_CUDA_STANDARD 17)
set(OpenCV_DIR “D:/qt/opencv_env/opencv/build”)

Find OpenCV package

find_package(OpenCV REQUIRED)

查找 libtorch 包

set(Torch_DIR “C:/Users/fengzeming/Downloads/libtorch-win-shared-with-deps-2.3.1+cu121/libtorch/share/cmake/Torch”)
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}”)
find_package(Torch REQUIRED)
message(STATUS "TORCH_INCLUDE_DIRS: T O R C H I N C L U D E D I R S " ) t a r g e t i n c l u d e d i r e c t o r i e s ( {TORCH_INCLUDE_DIRS}") target_include_directories( TORCHINCLUDEDIRS")targetincludedirectories({LIB_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${OpenCV_INCLUDE_DIRS}
KaTeX parse error: Expected 'EOF', got '#' at position 25: …LUDE_DIRS} #̲{TORCH_INCLUDE_DIRS}
)

target_link_libraries(${LIB_NAME} PUBLIC
${OpenCV_LIBS}
${CUDA_LIBRARIES}
${TORCH_LIBRARIES}
)

设置编译选项

set_property(TARGET ${LIB_NAME} PROPERTY CXX_STANDARD 17)

消除 Qt 和 libtorch 的兼容性警告

if (MSVC)
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} /wd4251 /wd4275”)
endif()

add_subdirectory(AnalysisStratify)

target_compile_definitions(BianYanLibtorchAnalysis PRIVATE BIANYANLIBTORCHANALYSIS_LIBRARY)

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值