如何编译OpenCV进行IOS7

发布网友 发布时间:2022-04-24 22:48

我来回答

2个回答

热心网友 时间:2023-10-13 23:06

编译的Xcode项目失败,出现以下错误: “缺少必需的架构arm在文件/用户/ * / Git/ocr/opencv2。 它运作良好,如果我改变架构(构建设置下)(ARMv7的,armv7s),而不是(ARMv7的,armv7s)。 如何更改opencv的python构建脚本,添加arm支持opencv2。
1. micahp的回答几乎是完美的,但错过了模拟器版本。因此,修改平台/ IOS /到: targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm", "i386", "x86_"]

你需要下载行工具Xcode的5.0.1,然后运行 python opencv/platforms/ios/build_framework.py ios

2. 我修改了以下内容,使之建立,虽然我还没有得到一个arm iOS设备进行测试的 编辑:我也只好跟着 假设“OPENCV”是包含从Github上的opencv源文件夹: 在每个gzlib.c, gzread.c, gzwrite.c位于opencv/3rdparty/zlib/地址: #include <unistd.h>

在顶部后,原有的包括。 另外开opencv/platforms/ios/cmake/Moles/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__BIT)" CACHE string "Build architecture for iOS")

在另外改变buildscriptopencv/platforms/ios/build_framework.py在99线和100从: targets = ["iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "i386"]

到: targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm", "i386", "x86_"]

所得到的库将包括以下内容: $ xcrun -sdk iphoneos lipo -info opencv2
Architectures in the fat file: opencv2 are: armv7 armv7s i386 x86_ arm

虽然我有一个关于剩余的关注opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake它定义了一个数据指针的大小为4的行14和17。它应该是8的位我想,这样我没有测试过,如果库工作arm我会建议进一步研究在这一点上,如果它不能正常运行。

3. 尝试等待下个月。将发布新的XCode具有更强大的32/位支持。

4. 修改“到: def build_framework(srcroot, dstroot):
"main function to do all the work"

targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm", "i386"]
for i in range(len(targets)):
build_opencv(srcroot, os.path.join(dstroot, "build"), targets[i], archs[i])

put_framework_together(srcroot, dstroot)

热心网友 时间:2023-10-13 23:06

如果是从官方库签出的OpenCV并且不怕麻烦的话,也可以使用官方的脚本完成编译,具体可以参看下载的/opencv/ios/readme.txt文件。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com