5

画像処理に OpenCV フレームワークを使用しています。通常の iOS プロジェクトの写真でエッジを特定しています。現在、cocos2d プロジェクトでこのコードを変換しています。必要なすべてのヘッダーをインポートしましたが、コンパイル中に次のエラーが発生します:expected specifier-qualifier- '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

以下のスクリーン ショットを参照してください。BotoxEffectController クラス インターフェイスのエラーと実装ファイルの拡張子は .mm です。 ボトックスエフェクトコントローラー

ここにopencv.hppをインポートしている.pchファイルがあります

.pch

4

1 に答える 1

0

私はここで何が起こっているか知っていると思います。OpenCV ヘッダーを BotoxEffectController ヘッダー ファイルに追加してみてください。

#import <OpenCV/opencv2/opencv.hpp>

これでコンパイル エラーが修正される場合、問題は prefix.pch にあります。何らかの理由で、その部分を解析しません#if __cplusplus。警告を追加することで確認できます。それがトリガーされるかどうかを確認します。

#ifdef __cplusplus
#warning "ok so it DID import the OpenCV header"
#import <OpenCV/opencv2/opencv.hpp>
#endif

それが問題なら、なぜ prefix.pch の opencv ヘッダーが機能しないのかはわかりません。以前にこの問題が 1 回か 2 回発生したことは覚えていますが、どのように修正したかは覚えていません。確認する必要があることの 1 つは、BotoxEffectController.h のファイル タイプを C++ ヘッダーではなく「デフォルト - C ヘッダー」に設定する必要があることです。

于 2013-02-21T11:29:01.013 に答える