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;
}

相关推荐
吴佳浩6 小时前
Hermes Agent 连环 400 真凶找到了:一个 call_id 让人炸毛
人工智能·llm·agent
程序员cxuan7 小时前
幽默,一个 Github 名字叫“马尾辫”,但是他给你省了 80% 的 token
人工智能·后端·程序员
宋哥转AI7 小时前
Agent记忆模块系列:03存储与检索链路实测验证
人工智能·agent
老金带你玩AI7 小时前
老金开源GoalPro,别让AI把目标越写越烂
人工智能
Bigfish_coding8 小时前
前端转agent-【python】-08 用 LangGraph 把 Agent 做成状态机:像写 Vue 3 状态管理一样编排 AI 流程
人工智能
刺猬的温驯8 小时前
语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题 (兼论旋转位置编码)——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比
人工智能·语音合成·tts
道友可好9 小时前
AI 是最好的混乱放大器:代码熵管理实战
前端·人工智能·后端
不加辣椒10 小时前
第7章 边界与约束技术:确保输出的准确性与安全性
人工智能
AI悦创Python辅导10 小时前
Claude Code 越用越乱?Sub-Agents 才是上下文污染的解法
人工智能
Bigfish_coding10 小时前
前端转agent-【python】-07 长期记忆进阶:用 ChromaDB + 语义搜索给 Agent 装上真正的长期记忆
人工智能