当前位置:   article > 正文

编译libtorch示例代码时遇到依赖libomp.dylib的问题_libtorch_cpu.dylib' (no such file),

libtorch_cpu.dylib' (no such file),

目的

本文目的是记录在C++中使用libtorch编译代码的过程中所遇到的问题。

环境信息如下表所示:

项目详细
芯片Apple M1 Pro
MacOSSonoma 14.2
IDEVisual Studio Code v1.85.1
CMakev3.22.2
libtorchv2.3.0

代码

代码目录结构:

test.cpp内容:

  1. #include <torch/torch.h>
  2. #include <iostream>
  3. int main()
  4. {
  5. torch::Tensor tensor = torch::eye(3);
  6. std::cout << tensor << std::endl;
  7. }

CMakeLists.txt内容:

  1. cmake_minimum_required(VERSION 3.0)
  2. project(libtorch_test)
  3. set(CMAKE_CXX_STANDARD 17)
  4. set(SOURCE_DIR src)
  5. add_executable(libtorch_test ${SOURCE_DIR}/test.cpp)
  6. # libtorch
  7. set(Torch_DIR ${PROJECT_SOURCE_DIR}/third_party/libtorch/share/cmake/Torch)
  8. find_package(Torch REQUIRED)
  9. message(STATUS "Torch version: ${Torch_VERSION}")
  10. # link libtorch
  11. target_link_libraries(libtorch_test ${TORCH_LIBRARIES})

编译脚本:

  1. cd build
  2. cmake ..
  3. make

执行:

./libtorch_test

问题

执行阶段报错信息如下所示:

从信息中可知,问题原因是在库文件搜索路径中无法找到libomp.dylib,从而导致执行失败。

解决方法

第一步:使用homebrew安装libomp。安装完成后,libomp位于/opt/homebrew/opt/libomp路径下。

第二步:在/usr/local/bin路径下,建立指向/opt/homebrew/opt/libomp/lib/libomp.dylib的符号链接。

扩展思考

本人最初的思路是想在CMakeLists.txt中增加库文件的搜索路径,但是没有成功。如果有人知道如何指定库文件的搜索路径,请留言赐教。谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/351555
推荐阅读
相关标签
  

闽ICP备14008679号