You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LibTorch、CMake和CLion时遭遇链接错误求解决

解决LibTorch链接错误:找不到-lmkl_intel_ilp64

步骤1:修正CMakeLists.txt中的CMAKE_PREFIX_PATH

原配置里的CMAKE_PREFIX_PATH指向~/libtorch/share/cmake是错误的,find_package(Torch)需要指向LibTorch的根目录——因为Torch的CMake配置文件存放在libtorch/share/cmake/Torch下,根目录才是正确的前缀路径。

修改后的完整CMakeLists.txt:

cmake_minimum_required(VERSION 3.23)
project(midi_plugin)

set(CMAKE_CXX_STANDARD 17)
add_executable(midi_plugin main.cpp)

# 指向LibTorch根目录,用绝对路径避免波浪号解析问题
set(CMAKE_PREFIX_PATH "/Users/jlenz/libtorch")
# 强制使用LibTorch自带的MKL,忽略系统中的conda MKL
set(Torch_USE_SYSTEM_MKL OFF)

find_package(Torch REQUIRED)

target_link_libraries(midi_plugin "${TORCH_LIBRARIES}")

步骤2:强制LibTorch使用自带MKL(推荐)

从你的CMake输出可以看到,系统自动找到了conda环境中的MKL,但链接器无法定位对应的库文件。添加set(Torch_USE_SYSTEM_MKL OFF)可以让CMake忽略系统中的外部MKL,转而使用LibTorch预编译包自带的MKL库,彻底规避依赖冲突。

步骤3:若必须使用conda的MKL,手动添加链接路径

如果你需要依赖conda环境中的MKL,需要显式告诉链接器库文件的位置:
在find_package(Torch REQUIRED)之前添加:

# 添加conda的MKL库路径
link_directories(/Users/jlenz/opt/miniconda3/lib)

或者在CLion中配置环境变量:

  1. 打开Run -> Edit Configurations
  2. 在Environment variables中添加:DYLD_LIBRARY_PATH=/Users/jlenz/opt/miniconda3/lib:/Users/jlenz/libtorch/lib

步骤4:清理缓存并重新构建

修改CMake配置后,必须清理旧的CMake缓存才能生效:

  • 在CLion中点击File -> Reload CMake Project,或者直接删除项目下的cmake-build-debug/cmake-build-release目录,重新运行CMake。

额外检查项

  • 确认你下载的LibTorch是适配macOS的CPU版本(带MKL),可以从PyTorch官网重新下载对应版本;
  • 确保CLion的构建环境没有继承其他冲突的环境变量(比如旧的MKL路径)。

内容的提问来源于stack exchange,提问作者JLenz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:01:15