赞
踩
本文目的是记录在C++中使用libtorch编译代码的过程中所遇到的问题。
环境信息如下表所示:
项目 | 详细 |
---|---|
芯片 | Apple M1 Pro |
MacOS | Sonoma 14.2 |
IDE | Visual Studio Code v1.85.1 |
CMake | v3.22.2 |
libtorch | v2.3.0 |
代码目录结构:
test.cpp内容:
- #include <torch/torch.h>
- #include <iostream>
-
- int main()
- {
- torch::Tensor tensor = torch::eye(3);
- std::cout << tensor << std::endl;
- }
CMakeLists.txt内容:
- cmake_minimum_required(VERSION 3.0)
-
- project(libtorch_test)
-
- set(CMAKE_CXX_STANDARD 17)
-
- set(SOURCE_DIR src)
-
- add_executable(libtorch_test ${SOURCE_DIR}/test.cpp)
-
- # libtorch
- set(Torch_DIR ${PROJECT_SOURCE_DIR}/third_party/libtorch/share/cmake/Torch)
- find_package(Torch REQUIRED)
- message(STATUS "Torch version: ${Torch_VERSION}")
-
- # link libtorch
- target_link_libraries(libtorch_test ${TORCH_LIBRARIES})

编译脚本:
- cd build
- cmake ..
- make
执行:
./libtorch_test
执行阶段报错信息如下所示:
从信息中可知,问题原因是在库文件搜索路径中无法找到libomp.dylib,从而导致执行失败。
第一步:使用homebrew安装libomp。安装完成后,libomp位于/opt/homebrew/opt/libomp路径下。
第二步:在/usr/local/bin路径下,建立指向/opt/homebrew/opt/libomp/lib/libomp.dylib的符号链接。
本人最初的思路是想在CMakeLists.txt中增加库文件的搜索路径,但是没有成功。如果有人知道如何指定库文件的搜索路径,请留言赐教。谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。