c++ - 如何构建使用 OpenCV 的 XCode 6 iOS 应用程序 - 未定义错误 __cplusplus

标签 c++ ios objective-c xcode opencv

我在使用 OpenCV 运行 xcode 项目时遇到问题。我已按照此 page 上的说明进行操作为 iOS 构建 OpenCV 框架。然后我跟着这个tutorial构建测试应用。

但是当我尝试构建时,似乎 __cplusplus 没有定义,因为

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

没有执行。

我似乎无法让我的项目编译 C++ 文件以使其正常工作。任何指针将不胜感激。

我已确保我的build设置知道 .pch 文件,并仔细检查框架是否已添加。

我在 OS X Yosemite 10.10.1、Xcode 6.1.1 上,我创建的应用程序类型是单 View 应用程序

更新

看起来它正在编译 __cplusplus block 。我在#ifdef block 中#define 一个变量,当我对它进行NSLogged 时,它出现了。好像只是找不到文件

opencv2/highgui/cap_ios.h

更新 2

除了下面@NobodyNada 关于将 .m 文件更改为 .mm 的评论之外,我还必须更改导入语句

opencv2/highgui/cap_ios.h -> opencv2/videoio/cap_ios.h.

我从@ToyHunter 在此 SO post 中的回答中发现了这一点.

最佳答案

您必须将所有导入 OpenCV 的文件的文件扩展名更改为 .mm。 OpenCV 是一个 C++ API,将文件的扩展名更改为 .mm 会将文件中使用的语言更改为 Objective-C++,这样您就可以混合使用 C++ 和 Objective-C。

关于c++ - 如何构建使用 OpenCV 的 XCode 6 iOS 应用程序 - 未定义错误 __cplusplus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28310511/

相关文章:

c++ - 关于 C++ 中 auto 关键字的困惑

ios - XCode 4 "add build setting condition"未启用

iphone - if 语句推送到 els 上的 viewController 不起作用

C++ 为什么我的类仍然是抽象的?

c++ - 如何使用 IDocHostUIHandler::ShowContextMenu 修改 Internet Explorer 的上下文菜单?

c++ - C++删除具有功能的指针

ios - 运行 IOS 模拟器后未找到 YogaKit.modulemap

ios - 以编程方式更改应用程序中特定颜色的所有文本的文本颜色? Xcode

iphone - 我如何重新创建 TweetBot 样式 'drop-down' 单元格菜单?

iphone - 如何在iphone应用程序中获取经纬度的地址