我下载了OpenCV iOS框架from here,并让它在iOS 6上工作得很好,但在iOS 5.0上,每当我调用:
self.videoCamera = [[CvVideoCamera alloc] initWithParentView:self.imageView];从this tutorial中,我得到了以下错误消息:
dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic
Referenced from: /var/mobile/Applications/8ADDFB67-97CE-4F6B-94B5-BD2548E0E6DD/MyApp.app/MyApp
Expected in: /usr/lib/libobjc.A.dylib
dyld: Symbol not found: _objc_setProperty_nonatomic
Referenced from: /var/mobile/Applications/8ADDFB67-97CE-4F6B-94B5-BD2548E0E6DD/MyApp.app/MyApp
Expected in: /usr/lib/libobjc.A.dylib最新版本是否仅适用于iOS 6?iOS 5有没有等价物?
发布于 2013-01-09 02:29:47
请参阅此问答:
http://answers.opencv.org/question/4767/build-opencv-for-ios-5/
最新的源码似乎有问题,他们建议你使用the most recent pre-built framework (2.4.3)。
话虽如此,我上周从当前源码构建了一个版本,它在ios6.0、5.1和5.0上运行良好(参见github项目here和here)
但是,当我在这个框架中尝试您所指的视频示例时,我得到了相同的错误。
因此,这似乎取决于您尝试使用的是openCV的哪种功能……
更新
我刚刚尝试了2.4.3,得到了同样的错误。返回一个版本2.4.2没有任何帮助,因为<opencv2/highgui/cap_ios.h>不存在。此文件声明了CvVideoCamera类和委托协议,因此如果没有它,您将无法在此示例中获得任何结果。有趣的是,cap_ios.h是一个Objective-C类声明,不像openCV的其余部分是C++...所以这个特殊的特性可能只适用于ios6
update2
好的,我设法用最新源码的最新构建的openCV来运行它。
1/将这些预先构建的源文件复制到项目中:
opencv/modules/highgui/src/
cap_ios_abstract_camera.mm
cap_ios_photo_camera.mm
cap_ios_video_camera.mm
cap_ios.h2/在这三个.mm文件中,更改以下行:
#import "opencv2/highgui/cap_ios.h"
#include "precomp.hpp"至:
#import "cap_ios.h"
// #include "precomp.hpp"2/在您的viewController更改中
#import <opencv2/highgui/cap_ios.h>至
#import "cap_ios.h"就是这样..。可能会有一两个其他的调整,但我认为这就是让它在5.1的部署目标下运行所需的一切。
https://stackoverflow.com/questions/14206014
复制相似问题