iOS 编译 OpenCV Xcframework

2024-05-17  本文已影响0人  前行哲

背景

OpenCV 官方提供 Framework 下载:https://opencv.org/releases/
但是官方给的这个 Framework 只能在真机运行,如果想在模拟器上运行,就得 Github 上查找,或者手动编译。但是 Github 上面找的很多不一定符合我们的需求,也不好维护,如果作者不及时更新,我们就很难升级上去。所以,还是觉得自己动手。

编译

  1. 首先从 Github 下载源码:https://github.com/opencv/opencv

  2. 系统及环境要求

    • MacOS 10.15 or later
    • Python 3.6 or later
    • CMake 3.18.5/3.19.0 or later (make sure the cmake command is available on your PATH)
    • Xcode 12.2 or later (and its command line tools)
  3. 执行脚本

源码中已经提供了脚本,我们只需要对应执行即可,脚本在opencv/platforms/apple/build_xcframework.py路径下。

直接按照官方提供的脚本执行示例(官方文档),大概率是不行的,反正我在M2上一直没有编成功。

经过一番折腾,修改脚本执行时的相关参数,最终正常编译出 Xcframework。如下:

python3 opencv/platforms/apple/build_xcframework.py --out ./build_xcframework --contrib opencv_contrib --framework_name=opencv2 --build_only_specified_archs --iphoneos_archs "arm64" --iphonesimulator_archs "arm64,x86_64" --iphoneos_deployment_target "12.0" --macos_archs "arm64,x86_64" --catalyst_archs "arm64,x86_64" --without objc

注意

1)上述执行完,会导出苹果各个平台的 opencv 库,然后合并成一个 Xcframework,如果你只需要iOS平台的,可以调整下相关的参数,比如去掉 --macos_archs "arm64,x86_64" --catalyst_archs "arm64,x86_64"
2)另外还有一点非常重要的,也是我多次失败后发现的,就是如果你的网络访问 Github 存在问题的话,你最好保证能够正常访问,否则一些资源拉不下在也会造成编译失败。

上一篇下一篇

猜你喜欢

热点阅读