I'm Sun

iOS 下 OpenCV 的配置

网上有很多如何在 iOS 下配置 OpenCV 的文章,但是经个人实验发现,很多文章要么已经过时,要么遗漏了重要的配置信息,而且 OpenCV 的官网也没有给出这些配置步骤,因而自己重新总结了一下,实测可行。

1. 导入 framework

首先导入 OpenCV framework。写本文时的最新的版本是 opencv2.framework,可以从 OpenCV 官网获得(下载地址),下载后直接拖入项目即可。有特殊嗜好的可以选择自己编译,具体方法参照这篇文章

然后导入 OpenCV 依赖的框架,AVFoundation.framework,ImageIO.framework 和 libz.dylib 是必选项。如果要处理视频的话,还需要导入 CoreVideo.framework 和 CoreMedia.framework。

2. 修改 .pch 文件

据说 OpenCV 的 MIN 宏与 UIKit 的 MIN 宏有冲突,所以需要在 .pch 文件中先定义 OpenCV 的头文件。在 #import <Availability.h> 后插入如下代码:

1
2
3
#ifdef __cplusplus
#import <OpenCV/opencv2/opencv.hpp>
#endif

3. 修改 Build Settings

首先进入 ‘Build Settings > Apple LLVM - Language C++’,将 C++ Language Dialect 的值改为 GNU++11 [-std=GNU++11]C++ Standard Library 的值改为 libstdc++(GNU C++ stardand library)

然后进入 ‘Build Settings > Architecture’,将 Build Active Architecture Only 下的 Debug 的值改为 YESRelease 的值改为 No

以上任何一步缺失都会导致程序报错。如果按照步骤配置还报错,请先检查有没有遗漏,还是不行就拿错误代码去栈溢出上搜吧,解决方案还是挺全的。