opencv mix with Objective C for OS X app development?

Kar*_*loz 3 macos opencv objective-c++

我想使用OS X默认GUI(如NSImageView)来显示OS X应用程序(不是iOS)的OpenCV图像,所以我需要使用Objective C和C++,这对于Apple LLVM编译器来说并不是什么大问题.但是当谈到OpenCV时,即使只是将opencv2/opencv.hpp导入到'.mm'文件中也会导致构建崩溃.

我收到错误:"预期会员名称或';' 声明说明符后"在OpenCV utility.hpp行'中bool check()const;'.

我搜索了这个,我在这里有一个类似的问题(混合Objective-C和C++和OpenCV).这个问题是在Cocoa和OpenCV中定义的一些宏.答案是在'.pch'文件中的Cocoa头之前导入OpenCV头.

默认情况下,iOS模板具有".pch"文件,但OS X模板不具有".pch"文件.所以我添加一个'.pch'没有运气,它也不会编译.

所以我的问题是如何才能像iOS解决方案那样做同样的事情?如何使用OpenCV编译OS X?

Hua*_*ham 7

您可以在需要时直接在源文件中导入/包含opencv头文件,但请确保在包含Cocoa头文件之前执行此操作.

例如,我需要使用OpenCV,ViewController.h所以我在以下方面做了以下事情ViewController.h:

#ifdef __cplusplus
#import <opencv2/core/core.hpp>
#endif

#import <Cocoa/Cocoa.h>
Run Code Online (Sandbox Code Playgroud)

现在,这是一个棘手的部分:你还需要小心依赖的文件ViewController.h.具体来说,任何其他导入的Cocoa文件ViewController.h都需要首先导入这个文件(甚至在它自己的标题之前,因为它自己的标题将导入一些Cocoa标题).