2024-09-28 03:20:24 发布
网友
编译Xcode项目失败,错误如下: 'missing required architecture arm64 in file /Users/*/Git/ocr/opencv2.framework/opencv2'
如果我将架构(在构建设置下)更改为(armv7,armv7s)而不是(armv7,armv7s),那么它工作得很好。
如何更改opencv python构建脚本,为opencv2.framework添加arm64支持?
我修改了下面的内容以使其得以构建,尽管我目前还没有一个arm64 iOS设备进行测试。
编辑:我还必须遵循https://stackoverflow.com/a/17025423/1094400
假设“opencv”是包含来自Github的opencv源代码的文件夹:
在位于opencv/3rdparty/zlib/中的每个gzlib.c, gzread.c, gzwrite.c中添加:
opencv/3rdparty/zlib/
gzlib.c, gzread.c, gzwrite.c
#include <unistd.h>
在现有include之后的顶部。
此外,打开opencv/platforms/ios/cmake/Modules/Platform/iOS.cmake并将第88行从以下位置更改:
opencv/platforms/ios/cmake/Modules/Platform/iOS.cmake
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从以下位置更改:
opencv/platforms/ios/build_framework.py
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工作,如果它不能正常运行,我建议在这一点上进行进一步的研究。
opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake
最新的OpenCV iOS框架默认支持64位
下载地址:OpenCV download page
micahp的答案几乎是完美的,但错过了模拟器版本。因此,将platforms/ios/build_framework.py修改为:
您需要下载Xcode 5.0.1的命令行工具,然后运行
python opencv/platforms/ios/build_framework.py ios
我修改了下面的内容以使其得以构建,尽管我目前还没有一个arm64 iOS设备进行测试。
编辑:我还必须遵循https://stackoverflow.com/a/17025423/1094400
假设“opencv”是包含来自Github的opencv源代码的文件夹:
在位于
opencv/3rdparty/zlib/
中的每个gzlib.c, gzread.c, gzwrite.c
中添加:在现有include之后的顶部。
此外,打开
opencv/platforms/ios/cmake/Modules/Platform/iOS.cmake
并将第88行从以下位置更改:致:
此外,将第99行和第100行中位于
opencv/platforms/ios/build_framework.py
的buildscript从以下位置更改:致:
生成的库将包括以下内容:
尽管我还有一个关于
opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake
的问题,它在第14行和第17行中将数据指针的大小定义为4。 我想64位应该是8位,所以我还没有测试编译的库是否在为arm64工作,如果它不能正常运行,我建议在这一点上进行进一步的研究。最新的OpenCV iOS框架默认支持64位
下载地址:OpenCV download page
micahp的答案几乎是完美的,但错过了模拟器版本。因此,将platforms/ios/build_framework.py修改为:
您需要下载Xcode 5.0.1的命令行工具,然后运行
相关问题 更多 >
编程相关推荐