VS2026+LibTorch(CPU版)环境搭建

一、环境搭建

  1. 完成LibTorch(CPU版)下载、安装及环境配置

  2. 编写,调用LibTorch接口,输出版本及CPU设备信息

二、分步实操步骤

步骤1:下载CPU版的LibTorch

  1. 官网地址:https://pytorch.org/get-started/locally/

  2. 参数选择:

OS:Windows

Package:LibTorch

Language:C++

Compute Platform:CPU

版本:2.1.0及以上,下载含「win-x64-cpu」的压缩包

  1. 解压尽量解压到无中文、无空格路径(例:F:/third_party_library/libtorch)

步骤2:环境变量配置(VS2026适配)

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」

  2. 系统变量新增:

变量名:LIBTORCH

变量值:LibTorch路径

  1. 编辑系统变量「Path」:

%LIBTORCH%\lib(LibTorch依赖库路径)

VS2026编译器路径

步骤3:CMakeLists.txt编写

核心需求:适配VS2026、禁用CUDA检测、解决路径转义、链接LibTorch库,完整可直接复制使用:

复制代码
cmake_minimum_required(VERSION 3.28)  # 升级到3.28+,适配VS2026
project(LLM_LibTorch)

set(CUDA_TOOLKIT_ROOT_DIR "" CACHE STRING "Disable CUDA" FORCE)
set(TORCH_USE_CUDA_DSA OFF CACHE BOOL "" FORCE)
set(TORCH_NO_CUDA ON CACHE BOOL "" FORCE)  # 强制禁用CUDA
set(CMAKE_CUDA_COMPILER OFF CACHE BOOL "" FORCE)

# 适配VS2026的C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(MSVC)
    add_compile_options(/W3 /WX- /wd4251 /wd4275 /wd4996)
    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()

# 配置纯CPU版LibTorch路径
set(LIBTORCH_PATH "F:/third_party_library/libtorch" CACHE PATH "LibTorch CPU版路径")
set(CMAKE_PREFIX_PATH ${LIBTORCH_PATH})

# 查找LibTorch库
find_package(Torch REQUIRED)
message(STATUS "LibTorch路径: ${TORCH_INSTALL_PREFIX}")
message(STATUS "LibTorch是否含CUDA: ${TORCH_USE_CUDA}")  # 输出应为OFF

add_executable(LLM_LibTorch LLM_LibTorch.cpp)

# 链接LibTorch库
target_link_libraries(LLM_LibTorch PRIVATE "${TORCH_LIBRARIES}")

# 配置头文件搜索路径
target_include_directories(LLM_LibTorch PRIVATE
    ${PROJECT_SOURCE_DIR}
    ${LIBTORCH_PATH}/include
    ${LIBTORCH_PATH}/include/torch/csrc/api/include
)

# VS2026专属:复制DLL到输出目录
if (MSVC)
    file(GLOB TORCH_DLLS "${LIBTORCH_PATH}/lib/*.dll")
    add_custom_command(TARGET LLM_LibTorch
                       POST_BUILD
                       COMMAND ${CMAKE_COMMAND} -E copy_if_different
                       ${TORCH_DLLS}
                       $<TARGET_FILE_DIR:LLM_LibTorch>
                       COMMENT "Copying LibTorch DLLs to output directory")
endif()

# 设置输出目录
set_target_properties(LLM_LibTorch PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
    DEBUG_POSTFIX "_d"
)

步骤4:程序编写

创建LLM_LibTorch.cpp主要是输出LibTorch版本、CPU设备信息,验证库链接,确保环境无误:

复制代码
#include "LLM_LibTorch.h"
#include <torch/torch.h>
#include <iostream>

// 实现utils.h的函数
torch::Tensor create_tensor(int rows, int cols) {
    return torch::ones({ rows, cols }, torch::kCPU);
}

int main() {
    std::cout << "LibTorch Version: " << TORCH_VERSION_MAJOR << "."
        << TORCH_VERSION_MINOR << "." << TORCH_VERSION_PATCH << std::endl;
    auto tensor = create_tensor(3, 4);
    std::cout << "Custom Tensor:\n" << tensor << std::endl;
    return 0;
}

相关推荐
geneculture几秒前
从人际间性到人机间性:进入人机互助新时代——兼论融智学视域下人类认知第二次大飞跃的理论奠基与实践场域
人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·人际间性·人机间性·人际间文性
东方品牌观察5 分钟前
观澜社张庆解析AI:便利与挑战并存
人工智能
w_t_y_y7 分钟前
Agent 开发框架(一)有哪些框架&&A2A协议
人工智能
龙亘川19 分钟前
医院通用人工智能平台设计与落地实践(2026)—— 面向智慧医院的 AI 操作系统架构解析
人工智能·医院通用人工智能平台技术白皮书
SelectDB技术团队19 分钟前
SelectDB Enterprise 4.0.5:强化安全与治理,构建企业级实时分析与 AI 数据底座
数据库·人工智能·apache doris
輕華23 分钟前
LSTM实战:遗忘门、输入门与输出门解决长期依赖
人工智能·rnn·lstm
Li emily23 分钟前
解决了美股api历史数据调用不稳定问题
人工智能·api·fastapi
weixin_5134499626 分钟前
PCA、SVD 、 ICP 、kd-tree算法的简单整理总结
c++·人工智能·学习·算法·机器人
code_pgf35 分钟前
Qwen2.5-VL 算法解析
人工智能·深度学习·算法·transformer
xiaotao1311 小时前
01-编程基础与数学基石:概率与统计
人工智能·python·numpy·pandas