Cocoapods OpenCV 2.4.10 链接器错误

Cocoapods OpenCV 2.4.10 Linker Error

我正在尝试使用 OpenCV 2.4.10 构建一个简单的项目,但我遇到了一堆这样的错误:

未定义的体系结构符号 x86_64:
  “_jpeg_free_large”,引用自:
      _free_pool 在 opencv2(jmemmgr.o)
  “_jpeg_free_small”,引用自:
      _free_pool 在 opencv2(jmemmgr.o)
      _self_destruct 在 opencv2(jmemmgr.o)

这里是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 时,项目构建得很好。
我还能够使用从 URL 下载的框架文件构建这个项目,我在 podspec 2.4.10 中找到了它。

iOS

的当前版本的 Open CV 似乎存在问题

Bug #4052

可能必须继续使用 2.4.9。

我没有这个问题的解决方案,但我有一个解决方法 here.I 已经从 here 下载了该项目。并将框架和 header 从这个项目复制到我的项目中。

Bug 4052 2.4.10 仍未解决,2.4.11 没有 pod,因此您必须使用 IMO 稳定的 2.4.9。

如果您使用 pods

pod 'OpenCV', '2.4.9'

所以这里有一个小的解决方法。问题是因为 XCode 项目无法 link 到 libjpeg.a 库。这就是为什么在编译项目时会出现上述错误的原因。

按照以下步骤操作:

  1. 转到:[[http://sourceforge.net/projects/libjpeg-turbo/files/1.4.0/]] 并下载 libjpeg-turbo-1.4.0.dmg (3.8 MB) 文件。
  2. 安装包。完成后,您将在此路径下找到已安装的文件:/opt/libjpeg-turbo/lib
  3. 打开终端并输入以下命令:lipo -info /opt/libjpeg-turbo/lib/libjpeg.a
  4. 如果终端在 运行 命令后显示以下输出,则表示您可以将库用于您的 iOS 项目(armv7/armv7s)
    • fat 文件中的架构:/opt/libjpeg-turbo/lib/libturbojpeg.a 是:i386 x86_64 armv6 armv7 armv7s arm64*
  5. 使用 finder 导航至:/opt/libjpeg-turbo/lib 并复制 libjpeg.a 并将其放入您的项目文件夹。
  6. 转到您的 XCode 项目 -> 单击项目名称 -> 目标 -> 常规 -> 链接的框架和库 -> 单击底部的添加按钮 -> 包括 libjpeg.a 文件
  7. 编译项目。它不应该再显示 libjpeg linker 错误。

我已经将新版本的 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 实际上是下载 repo,从源代码编译,然后链接 libjpeg 除了 opencv2.framework 文件.这现在通过 CocoaPods 开箱即用,但是在执行 pod install 时需要一段时间,因为它是从源代码编译的。只需确保在执行此操作时不要取消它(CocoaPods 中有一个 bug 如果取消它会导致问题)。

在后台,3.0.0 与以前一样使用预构建的 opencv2.framework 文件,现在可以通过 CocoaPods 安装。

版本 2.4.10 在 CocoaPods 中仍然损坏,但由于该版本在我的机器上从源代码编译时会抛出错误,所以我无能为力。

(注:我不是pod的原始维护者,我只是贡献了这些新版本。)

我在打开 CV 时遇到了同样的问题,并在下面找到了一个有用的 link 解决了我的项目错误:

http://blog.csdn.net/iOSLearner_Nana/article/details/45174365