2013-02-21 17 views
5

Görüntü işleme için OpenCV framework kullanıyorum, normal iOS projesi için fotoğraftaki kenar tanımlayıcısıyorum, şimdi bu kodu cocos2d projesine dönüştürüyorum, hepsini aldım gerekli üstbilgiler ancak derlerken, bu hatayı alıyorum: 'cv' öncesindeki beklenen belirteci-niteleyici listesi. Burada hata & uygulama dosya uzantısı, mm sahiptir BotoxEffectController sınıf arayüzü vuran kodumhata: beklenen belirteci-niteleyici-listesi 'cv' önce

 #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 

ekranının altındaki bakınız olduğunu. BotoxEffectController

burada ben opencv.hpp

ben burada neler olduğunu düşünmek

.pch

+0

Bunu içe aktaran bir dosyanın, .mm değil, .m ile olduğunu doğrulayın. M – borrrden

+0

evet dosya uzantısına sahip .mm –

+0

Bunlardan biri – borrrden

cevap

0

ithal ediyorum .pch dosyasıdır. senin BotoxEffectController başlık dosyasına OpenCV başlığı eklemeyi deneyin:

#import <OpenCV/opencv2/opencv.hpp> 

bu derleme hataları giderir, sorun prefix.pch beraberdir. Bazı nedenlerden dolayı #if __cplusplus parçasını ayrıştırmaz. o tetikler eğer kendisine bir uyarı ekleyerek doğrulayabilir bkz: prefix.pch içinde opencv başlık neden çalışmaz

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

mesele bu ise, ben söyleyemem. Sadece bu sorunu bir veya iki kez aldığımı hatırlıyorum, ama nasıl düzeltdiğimi hatırlayamıyorum. Kontrol etmeniz gereken bir şey: BotoxEffectController.h Dosya Türü'nün "Varsayılan - C Üstbilgisi" olarak ayarlanmış ve C++ başlığına sahip olmamalıdır.

+1

OpenCV başlıkları, UIKit.h ve Foundation.h'den önce eklenmelidir çünkü OpenCV, Apple çerçeveleri tarafından tanımlanan MIN işleviyle çakışan bir MIN makrosu tanımlar. UICit.h ve Foundation.h'den sonra OpenCV başlıklarını eklerseniz, ‘LLVM GCC 4.2 gibi derleme hataları alırsınız. Hata: Deyim ifadelerine yalnızca işlevlerin içinde izin verilir. Önce OpenCV üstbilgileri ve #cport'u __cplusplus koşullu sınaması ile kaplamak, bu sorunu ortadan kaldırır ve projenizde OpenCV API'lerini aramayan ‘.m for dosyaları için hala normal Objective-C kullanabileceğiniz anlamına gelir. –

+1

başvuru: http://aptogo.co.uk/2011/09/opencv-framework-for-ios/ –

İlgili konular