我正在尝试使用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的原始维护者,我只是贡献了这些新版本。)

10-05 21:00
查看更多