我正在尝试使用OpenCV 2.4.10构建一个简单的项目,但出现了很多这样的错误:
Undefined symbols for architecture x86_64: "_jpeg_free_large", referenced from: _free_pool in opencv2(jmemmgr.o) "_jpeg_free_small", referenced from: _free_pool in opencv2(jmemmgr.o) _self_destruct in opencv2(jmemmgr.o)
Here is ViewController.m
#import "ViewController.h"
#import <opencv2/opencv.hpp>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
cv::Mat greyMat;
}
播客文件
platform :ios, '8.1'
pod 'OpenCV', '2.4.10'
当我使用2.4.9.1或2.4.9版本时,项目构建就很好。
我还能够使用从Podspec 2.4.10中找到的URL下载的框架文件来构建该项目。
最佳答案
我已将新版本的OpenCV添加到CocoaPods(2.4.11、2.4.12、2.4.12.3、3.0.0)。
2.4.11、2.4.12和2.4.12.3需要链接libjpeg,因此现在pod实际下载了仓库,从源代码进行编译,然后除了opencv2.framework文件之外还链接了libjpeg。现在可以通过CocoaPods开箱即用,但是在执行pod install
时会花费一些时间,因为它是从源代码编译的。只要确保在执行此操作时不要将其取消即可(CocoaPods中有一个bug会在取消时导致问题)。
在引擎盖下,3.0.0的工作方式与之前构建的opencv2.framework文件相同,现在可以通过CocoaPods很好地安装了。
在CocoaPods中仍旧破坏了2.4.10版本,但是由于该版本在从计算机上的源代码编译时会引发错误,因此我无能为力。
(注意:我不是Pod的原始维护者,我只是贡献了这些新版本。)