You*_*sef 17 iphone opencv ios xcode4.5
我正在使用openCV框架开发iphone应用程序.一切都很好.然而,最近随着iOS 6和XCode 4.5的发布我将我的项目迁移到XCode 4.5构建时我遇到了这个错误:
ld:文件是通用的(2个切片),但不包含(n)armv7s切片:/Users/jobs/iPhone_Client/workspace/MyProject/third-party/OpenCV.framework/OpenCV用于体系结构armv7s clang:错误:链接器命令失败退出代码1(使用-v查看调用)
**建筑失败**
以下构建命令失败:Ld build/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/armv7s/MyProject normal armv7s(1 failure)
据我所知,这是由于新的armv7s架构.OpenCV显然不是用armv7编译的.
我该如何解决这个问题?
我在哪里可以找到与armv7s架构兼容的框架的新版本?
如果没有可用的兼容框架,有没有办法获得源代码并创建我自己的库,针对新架构编译?也许一些快速的步骤如何做到这一点?
注意:请注意,我需要armv7s的构建而不是armv7.谢谢
Ham*_*mer 15
这个答案建立在n9986给出的答案之上.正如他所建议的那样,我克隆了找到的存储库
https://github.com/jonmarimba/OpenCV-iOS
当我下载它时,项目内部的几个引用被打破了,这很奇怪,但很容易修复.修复后,它的行为与n9986所描述的完全相同,输出为armv7和armv7s编译的库.然而,出于我的目的,我要求将它们捆绑到一个.framework中,以便它们可以替代我一直在使用的旧框架.
此前我已经下载了最新版本的OpenCV的iOS 这里,花了相当多的时间试图修改其cmake的文件与armv7s支持编译.jonmarimba已经重新构建了xcode项目文件,以消除其cmake依赖关系,这使得更改目标架构变得更加直观.不幸的是,他没有构建与标准openCV构建一样多的库.我为jonmarimba的opencv_world项目添加了一个新目标,opencv_world是标准openCV版本中用于转换为框架的目标.一旦构建了它,我就用它作为标准openCV版本生成的框架文件结构中静态库的替代品.
我创建的框架可以在这里下载.它对我来说非常适合作为我以前的opencv2.framework的替代品.我注意到jonmarimba没有转换opencv_videostab,opencv_stitching或opencv_nonfree的目标.如果您使用其中一个库,我的框架可能不适合您.如果是这种情况,请告诉我,我可以尝试将这些设置为xcode项目中的目标.
更新
要编译其他体系结构,请将包含的xcode项目中的目标体系结构更改为opencv_world库中您喜欢的任何内容.构建之后,找到刚刚构建的库.将opencv_world库重命名为opencv2,并使用opencv_world替换.framework中的库文件.
UPDATE2
OpenCV 2.4.3现在默认编译armv7s支持,因此这些解决方案已经过时.
克隆opencv的Xcode项目,并按照README更新opencv git子模块:
https://github.com/jonmarimba/OpenCV-iOS
检查构建设置,确保存在iOS6和armv7.单击构建.您现在应该拥有armv7s兼容的.a文件.我刚试过这个:
$ file libopencv_core.a
libopencv_core.a: Mach-O universal binary with 2 architectures
libopencv_core.a (for architecture armv7): current ar archive random library
libopencv_core.a (for architecture cputype (12) cpusubtype (11)): current ar archive random library
Run Code Online (Sandbox Code Playgroud)
到目前为止,根据我的研究,最后一个条目是armv7s.
编辑:最后一个条目确实是armv7s.我运行了Xcode自己的lipo info命令:
$ xcrun -sdk iphoneos lipo -info libopencv_core.a
Architectures in the fat file: libopencv_core.a are: armv7 armv7s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9311 次 |
| 最近记录: |