iOS 测试 【求助】在 MacOS 使用 java 加载 OpenCV 动态库时报错 UnsatisfiedLinkError:(mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

bou瓜 · 2023年04月13日 · 最后由 bou瓜 回复于 2023年04月14日 · 5915 次阅读

在 MacOS 把已经用 cmake 编译好的 jar 包和 lib 文件加载到项目时出现了以下报错:


加载是 System.load 来指定绝对路径和文件,用 LoadLibrary 时会报错 not found LibraryFile,文件也放在相应的 java.path 下面。
试过编译多个版本 Opencv 的 Source 代码,用 CMake 编译时,参数也配过了,在指令前也加了 arch -arm64,得到的结果也是一样。
请问有没有前辈有过类似的经历,可以帮忙指点一下。谢谢。

共收到 1 条回复 时间 点赞

问题解决了,把 cmake 运行的参数-DCMAKE_SYSTEM_PROCESSOR -DCMAKE_OSX_ARCHITECTURES 都改成 x86_64,然后编译就可以得到 x86 的动态库文件。原本以为是上面的报错是要求和本机处理器的型号相对应的动态库,但是实际是需要 x86 版本的,所以在 cmake 用 x86 架构编译后就可以加载了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册