我修改了以下内容以使其构建,但我目前还没有arm64 iOS设备进行测试 .
假设“opencv”是包含来自Github的opencv源的文件夹:
在位于 opencv/3rdparty/zlib/ 的 gzlib.c, gzread.c, gzwrite.c 中的每一个中添加:
#include
在现有的包括之后的顶部 .
另外打开 opencv/platforms/ios/cmake/Modules/Platform/iOS.cmake 并从以下位置更改第88行:
set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)" CACHE string "Build architecture for iOS")
至:
set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)" CACHE string "Build architecture for iOS")
此外,更改第99行和第100行中的 opencv/platforms/ios/build_framework.py 的buildscript:
targets = ["iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "i386"]
至:
targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]
生成的库将包括以下内容:
$ xcrun -sdk iphoneos lipo -info opencv2
Architectures in the fat file: opencv2 are: armv7 armv7s i386 x86_64 arm64
虽然我仍然关注 opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake ,它将数据指针的大小定义为第14行和第17行中的4 . 我想64bit应为8,所以我没有测试编译库是否适用于arm64我如果运行不正常,会建议进一步调查 .