我在使用 OpenCV 运行 xcode 项目时遇到问题。我已经按照此页面上的说明构建了适用于iOS的OpenCV框架。然后,我按照本教程构建了一个测试应用。
但是当我尝试构建时,看起来__cplusplus没有定义,因为
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
不执行。
我似乎无法让我的项目编译可以使其工作的 c++ 文件。任何指示将不胜感激。
我已经确保我的构建设置知道 .pch 文件,并仔细检查框架是否已添加。
我使用的是OS X Yosemite 10.10.1,Xcode 6.1.1,我创建的应用程序类型是单视图应用程序
更新
看起来它正在编译__cplusplus块。我在 #ifdef 块中 #define 了一个变量,当我 NSLoged 它时,它出现了。似乎只是找不到文件
opencv2/highgui/cap_ios.h
更新 2
除了下面@NobodyNada关于将 .m 文件更改为 .mm 的评论外,我还必须将导入语句从
opencv2/highgui/cap_ios.h -> opencv2/videoio/cap_ios.h.
我从@ToyHunter在这篇 SO 帖子中的回答中发现了这一点。
您必须更改将 OpenCV 导入 .mm
的所有文件的文件扩展名。 OpenCV是一个C++的API,将文件的扩展名更改为.mm
会将文件中使用的语言更改为Objective-C++,这使您可以混合使用C++和Objective-C。