如何编译OpenCV for iOS7(arm64)
编译Xcode项目失败并出现以下错误: “文件/ Users / * /Git/ocr/opencv2.framework/opencv2中缺less必需的架构arm64”
如果我把体系结构(在构build设置下)改为(armv7,armv7s)而不是(armv7,armv7s),效果很好。
如何更改opencv python构build脚本,添加arm64支持opencv2.framework?
最新的OpenCV iOS框架默认支持64位
它可以在OpenCV下载页面下载
我修改了以下内容,以便构build,尽pipe目前还没有arm64 iOS设备需要testing。
编辑 :我也不得不遵循https://stackoverflow.com/a/17025423/1094400
假设“opencv”是包含来自Github的opencv源文件夹:
在每个gzlib.c, gzread.c, gzwrite.c
位于opencv/3rdparty/zlib/
add:
#include <unistd.h>
在现有包括之后的顶部。
另外打开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位。对于64位我应该是8位,如果编译的库是为arm64工作的话,那么就testing一下,如果运行不正常,我会build议进一步的调查。
micahp的答案几乎是完美的,但错过了模拟器版本。 所以修改platform / ios / build_framework.py来:
targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"] archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]
您需要下载Xcode 5.0.1的命令行工具,然后运行
python opencv/platforms/ios/build_framework.py ios
尝试等待下个月。 将发布一个新的XCode与更强大的支持32/64位。
修改“build_frameworks.py”到:
def build_framework(srcroot, dstroot): "main function to do all the work" targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator"] archs = ["armv7", "armv7s", "arm64", "i386"] for i in range(len(targets)): build_opencv(srcroot, os.path.join(dstroot, "build"), targets[i], archs[i]) put_framework_together(srcroot, dstroot)
@Jan,我按照你的指示,但OpenCV仍然不能在arm64上运行。 你做出了这样一个详细而精彩的答案 – 为什么不在模拟器上检查一下,看看你能不能运行? 🙂
FWIW,我想这可能比看起来更难。 在openCV的stackoverflow克隆,有迹象表明,这个问题可能是不平凡的 。
官方网站的opencv安装指南中没有使用terminal命令,请使用以下命令。 为我工作。
光盘OpenCV-2.3.1
mkdir构build
CDbuild立
cmake -G“Unix Makefiles”
使
sudo make install
我有一个类似的错误,但问题是没有关联的arm64 coompilation.fixed添加框架libc ++。dylib