2013-02-21 17 views
5

से पहले अपेक्षित विनिर्देशक-क्वालीफायर-सूची मैं छवि प्रसंस्करण के लिए ओपनसीवी फ्रेमवर्क का उपयोग कर रहा हूं, मैं सामान्य आईओएस प्रोजेक्ट के लिए फोटो में बढ़त की पहचान कर रहा हूं, अब मैं इस कोड को कोकोस 2 डी प्रोजेक्ट में परिवर्तित कर रहा हूं, मैंने सभी को आयात किया है आवश्यक हेडर लेकिन संकलन करते समय मुझे यह त्रुटि मिल रही है: 'सीवी' से पहले अपेक्षित विनिर्देशक-क्वालीफायर-सूची। यहाँ मेरी कोडत्रुटि: 'सीवी'

 #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 है गोली मार दी है। BotoxEffectController

यहाँ .pch फ़ाइल मैं कहाँ opencv.hpp

.pch

+0

सुनिश्चित करें कि इसमें आयात करने वाली कोई भी फ़ाइल एक्सटेंशन है। मिमी, नहीं .m – borrrden

+0

हाँ फ़ाइल में एक्सटेंशन है .mm –

+0

उनमें से एक – borrrden

उत्तर

0

मुझे लगता है कि मुझे पता है कि यहाँ क्या हो रहा है का आयात कर रहा हूँ। अपने BotoxEffectController हेडर फाइल करने के लिए OpenCV हैडर जोड़ने का प्रयास करें:

#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 हैडर से काम नहीं चलेगा नहीं बता सकता। मुझे केवल याद है कि इस मुद्दे को एक या दो बार पहले किया गया था, लेकिन याद नहीं किया जा सकता कि मैंने इसे कैसे तय किया। एक चीज आपको जांचनी चाहिए: BotoxEffectController.h का फ़ाइल प्रकार "डिफ़ॉल्ट - सी शीर्षलेख" पर सेट होना चाहिए और सी ++ हेडर नहीं होना चाहिए।

+1

ओपनसीवी हेडर को UIKit.h और Foundation.h से पहले शामिल किया जाना चाहिए क्योंकि OpenCV एक मिनी मैक्रो को परिभाषित करता है जो ऐप्पल फ्रेमवर्क द्वारा परिभाषित MIN फ़ंक्शन के साथ संघर्ष करता है। यदि आप UIKit.h और Foundation.h के बाद ओपनसीवी हेडर शामिल करते हैं तो आपको संकलन त्रुटियां मिलेंगी जैसे 'एलएलवीएम जीसीसी 4.2 त्रुटि: स्टेटमेंट-एक्सप्रेशन केवल फ़ंक्शंस के अंदर ही अनुमति है'। __cplusplus सशर्त परीक्षण के साथ पहले और आसपास के #import के साथ ओपनसीवी शीर्षलेख सहित इस समस्या से बचाता है और इसका मतलब है कि आप अभी भी अपने प्रोजेक्ट में '.m' फ़ाइलों के लिए सादा उद्देश्य-सी का उपयोग कर सकते हैं जो ओपनसीवी एपीआई को कॉल नहीं करते हैं। –

+1

देखें: http://aptogo.co.uk/2011/09/opencv-framework-for-ios/ –

संबंधित मुद्दे