Pra*_*ari 5 iphone xcode opencv cocos2d-iphone ios
我正在使用OpenCV框架进行图像处理,我正在识别正常iOS项目的照片边缘,现在我在cocos2d项目中转换此代码,我已导入所有必需的标题但在编译时我收到此错误:期望说明符 - 限定符 - 在'cv'之前列出.这是我的代码
#import "cocos2d.h"
#import "CameraController.h"
#import "Globals.h"
@interface BotoxEffectController : CCLayer
{ cv::VideoCapture *_videoCapture; cv::Mat _lastFrame;}//this is line where i am
getting error
@property (nonatomic, retain) CCSprite *sprite2D;
+(CCScene *) scene;
@end
here is code in .pch file.
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iPhone SDK 3.0 and later."
#endif
#ifdef __cplusplus
#import <OpenCV/opencv2/opencv.hpp>
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
Run Code Online (Sandbox Code Playgroud)
请参考下面的屏幕截图BotoxEffectController类接口,其中错误是&实现文件有扩展名.mm.
这里是.pch文件,我在哪里导入opencv.hpp

我想我知道这是怎么回事。尝试将 OpenCV 标头添加到您的 BotoxEffectController 标头文件中:
#import <OpenCV/opencv2/opencv.hpp>
Run Code Online (Sandbox Code Playgroud)
如果这修复了编译错误,则问题出在 prefix.pch 上。由于某种原因它不解析该#if __cplusplus部分。您可以通过添加警告来验证它,看看它是否触发:
#ifdef __cplusplus
#warning "ok so it DID import the OpenCV header"
#import <OpenCV/opencv2/opencv.hpp>
#endif
Run Code Online (Sandbox Code Playgroud)
如果这是问题所在,我无法告诉您为什么 prefix.pch 中的 opencv 标头不起作用。我只记得以前遇到过一两次这个问题,但不记得我是如何解决的。您应该检查的一件事:BotoxEffectController.h 应将其文件类型设置为“默认 - C 标头”而不是 C++ 标头。