本文主要是介绍MacOS M1芯片openmp库出现mach-o file, but is an incompatible architecture (have ‘arm64‘, need ‘x86_64‘问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1. 问题描述
- 2. 问题出现原因
- 3. 解决方案
- 编译安装
- 使用Homebrew安装
- Reference
1. 问题描述
报错如下所示:
ImportError: dlopen(/Users/Xuan/Developer/DLTools/GPRModule/gprMax/fields_updates_ext.cpython-310-darwin.so, 0x0002): tried: ‘/Users/Xuan/Developer/DLTools/GPRModule/gprMax/fields_updates_ext.cpython-310-darwin.so’ (mach-o file, but is an incompatible architecture (have ‘arm64’, need ‘x86_64’)), ‘/System/Volumes/Preboot/Cryptexes/OS/Users/Xuan/Developer/DLTools/GPRModule/gprMax/fields_updates_ext.cpython-310-darwin.so’ (no such file), ‘/Users/Xuan/Developer/DLTools/GPRModule/gprMax/fields_updates_ext.cpython-310-darwin.so’ (mach-o file, but is an incompatible architecture (have ‘arm64’, need ‘x86_64’))
2. 问题出现原因
本文所述场景使用conda进行环境管理,使用conda list | grep openmp
命令可以查看已经安装的有关openmp库的信息。通过返回信息可以看到,conda默认情况下构建的是基于intel芯片的库,这就是出现“have ‘arm64’, need ‘x86_64’”错误的原因所在了。
$ conda list | grep openmp
intel-openmp 2021.4.0 hecd8cb5_3538 defaults
llvm-openmp 14.0.6 h0dcd299_0 defaults
3. 解决方案
在macOS平台上安装OpenMP库的操作方法如下:
编译安装
- 从LLVM的下载页面安装libomp。
- 导航到LLVM的下载页面。
- 下载OpenMP源代码。
- 编译源代码并安装。
使用Homebrew安装
brew install libomp
Reference
在 macOS 平台上安装 OpenMP 库 - MATLAB & Simulink - MathWorks 中国
这篇关于MacOS M1芯片openmp库出现mach-o file, but is an incompatible architecture (have ‘arm64‘, need ‘x86_64‘问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!