如何编译OpenCV进行IOS7
答案:2 悬赏:0 手机版
解决时间 2021-01-21 14:24
- 提问者网友:缘字诀
- 2021-01-20 15:37
如何编译OpenCV进行IOS7
最佳答案
- 五星知识达人网友:掌灯师
- 2021-01-20 16:53
编译的Xcode项目失败,出现以下错误: “缺少必需的架构arm64在文件/用户/ * / Git/ocr/opencv2。 它运作良好,如果我改变架构(构建设置下)(ARMv7的,armv7s),而不是(ARMv7的,armv7s)。 如何更改opencv的python构建脚本,添加arm64支持opencv2。
1. micahp的回答几乎是完美的,但错过了模拟器版本。因此,修改平台/ IOS /到: 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
2. 我修改了以下内容,使之建立,虽然我还没有得到一个arm64 iOS设备进行测试的 编辑:我也只好跟着 假设“OPENCV”是包含从Github上的opencv源文件夹: 在每个gzlib.c, gzread.c, gzwrite.c位于opencv/3rdparty/zlib/地址: #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")
在另外改变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", "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它定义了一个数据指针的大小为4的行14和17。它应该是8的64位我想,这样我没有测试过,如果库工作arm64我会建议进一步研究在这一点上,如果它不能正常运行。
3. 尝试等待下个月。将发布新的XCode具有更强大的32/64位支持。
4. 修改“到: 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)
1. micahp的回答几乎是完美的,但错过了模拟器版本。因此,修改平台/ IOS /到: 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
2. 我修改了以下内容,使之建立,虽然我还没有得到一个arm64 iOS设备进行测试的 编辑:我也只好跟着 假设“OPENCV”是包含从Github上的opencv源文件夹: 在每个gzlib.c, gzread.c, gzwrite.c位于opencv/3rdparty/zlib/地址: #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")
在另外改变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", "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它定义了一个数据指针的大小为4的行14和17。它应该是8的64位我想,这样我没有测试过,如果库工作arm64我会建议进一步研究在这一点上,如果它不能正常运行。
3. 尝试等待下个月。将发布新的XCode具有更强大的32/64位支持。
4. 修改“到: 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)
全部回答
- 1楼网友:躲不过心动
- 2021-01-20 18:03
如果是从官方库签出的OpenCV并且不怕麻烦的话,也可以使用官方的脚本完成编译,具体可以参看下载的/opencv/ios/readme.txt文件。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯