2009-06-13 15 views
20

से पहले मैं स्पीकर उदाहरण को किसी अन्य ऐप में बंद करने की कोशिश कर रहा हूं और मुझे समस्याएं हैं। मैंने सभी फाइलों और सभी ढांचे की प्रतिलिपि बनाई, लेकिन किसी कारण से मुझे संकलन त्रुटियों का एक समूह मिलता है जिसे मैंने कभी नहीं देखा है और इस तरह यह नहीं पता कि क्या करना है। केवल अंतर यह है कि मैं आईबी पर मुकदमा नहीं कर रहा हूं और इसलिए मुझे इसे थोड़ा बदलना पड़ा।आईफोन त्रुटि: अपेक्षित '=', ',', ';', 'asm' या '__attribute__' 'foo'

क्या error: expected '=', ',', ';', 'asm' or '__attribute__' before 'foo' मतलब है? ... मैं इस त्रुटि को कई बार अलग अलग फ़ाइलों

मेरी स्थिति पहले त्रुटि 'MeterTable' .. एक वर्ग है कि <stdlib.h>, <stdio.h> और <math.h> शामिल की ओर इंगित करता है में के लिए मिलता है। लेकिन वे फ़ाइलें ठीक से आयात कर रही हैं (अगर मैं उन्हें हटा देता हूं तो मुझे और त्रुटियां मिलती हैं)

इसे डीबग करने के तरीके पर कोई सुझाव?

टीआईए!

संपादित करें: मुझे अभी भी यह पता लगाना प्रतीत नहीं होता है। मैं सचमुच उदाहरण से फाइलों को किसी अन्य प्रोजेक्ट में कॉपी कर रहा हूं। क्या कोई इसे देख सकता है? SpeakHerePort.zip और मूल यहाँ है SpeakHere.zip

+0

हम वास्तव में surrou देखने की जरूरत एनडी कोड त्रुटि "मीटरटेबल" से पहले हो रही है। यही वह बिंदु है जहां संकलक ने त्याग दिया। – UncleO

+0

जब से मैं वास्तव में नहीं पता है कि – dizy

+0

देखें त्रुटि मैं सिर्फ परियोजना तैनात पैदा करता है, तो क्या यह उत्तर में मदद करता है: [http://stackoverflow.com/questions/990578/expected-asm-or-attribute-before-crendercontext] (http://stackoverflow.com/questions/990578/expected-asm-or-attribute-before-crendercontext) –

उत्तर

40

आपकी समस्या यह है कि आप SpeakHerePortAppDelegate.m संकलित कर रहे हैं, जो एक उद्देश्य सी फ़ाइल है, लेकिन यह अप्रत्यक्ष रूप से MeterTable.h सहित है जो एक C++ हेडर फ़ाइल है।

इसे SpeakHerePortAppDelegate.mm (डबल एम) में नाम दें ताकि इसे उद्देश्य सी ++ के रूप में संकलित किया जा सके और आपकी समस्या हल हो गई हो।

नाम सब अपनी फ़ाइलें .mm और फिर अपने सभी कोड उद्देश्य सी ++

0

इसका मतलब है कि आपके पास वाक्यविन्यास त्रुटि है। यदि आप कोड को प्रश्न में पेस्ट करते हैं, तो डीबग करना आसान है।

+0

वैसे अजीब हिस्सा यह तथ्य है कि जब भी मैं कोई कस्टम कोड लेता हूं, तब भी मुझे त्रुटियां मिलती हैं, और फाइलों से इसकी त्रुटियां जिन्हें मैंने उदाहरण से कॉपी किया है, यहां तक ​​कि कॉपॉय/पेस्ट भी नहीं बल्कि पूरी फाइलें। तो इसकी लगभग एक चीज की तरह मैं एक परियोजना निपटान के रूप में याद कर रहा हूँ। लेकिन अन्य सभी समान ढांचे को आयात करते हुए मुझे नहीं पता कि यह – dizy

+0

क्या हो सकता है अगर यह कुछ विशिष्ट फ़ाइल से एक त्रुटि थी, तो मैं स्रोत पोस्ट करूंगा, लेकिन यह एक ही त्रुटि है जो कई फाइलों को फैलाती है जो सभी उदाहरण – dizy

1

यह एक हेडर फ़ाइल में शायद एक अधूरा घोषणा की तरह लगता है। एक्सकोड में ⇧⌘F (संपादित करें ▸ खोजें ▸ प्रोजेक्ट ...) का उपयोग करके, सभी प्रोजेक्ट फ़ाइलों में 'foo' (या जो भी प्रतीक वास्तव में है) के लिए खोजें, और/या हेडर की जांच करें जिसमें आप शामिल हैं, जहां MeterTable है की घोषणा की। कभी-कभी संकलक त्रुटि के वास्तविक स्थान के बारे में भ्रमित हो जाता है, क्योंकि हेडर फ़ाइलों को अक्सर # अन्य फ़ाइलों में आयात किया जाता है, इसलिए समस्या कई स्थानों में प्रकट हो सकती है।

1

यह इस सटीक स्थिति के लिए आवेदन किया है नहीं हो सकता है, लेकिन मैं इस सटीक त्रुटि भी था, जो एक बुरी आगे के कारण हुई थी के रूप में संकलित किया जाएगा घोषणा। उद्देश्य-सी में, सुनिश्चित करें कि आपकी अग्रेषित घोषणाएं @ साइन - उदा।

@class MyClass; 

अभी भी सी ++ से autopilot @ भूल जाएगा पर हममें से वे, देखते हैं कि XCode एक आरक्षित कीवर्ड के रूप में वर्ग पर प्रकाश डाला गया है, और लगता है कि पूरी दुनिया के साथ अच्छी तरह से है। यह नहीं।

0

मेरे ऊपर उपरोक्त कुछ पदों के लिए एक समान परिदृश्य था। मैंने ऑडियो क्यूई सेवा प्रलेखन में उदाहरणों के आधार पर एक सी ++ कक्षा लिखी थी, और परीक्षण प्रक्रिया में यह संकलन समस्या थी। इस पोस्ट ने जबरदस्त राशि में मदद की।

आज, मैं अपनी परियोजना में सी ++ कक्षा को शामिल कर रहा हूं, और फिर निर्माण त्रुटि मिली। मेरे परिदृश्य में, मुझे अपनी सी ++ कक्षा को कॉल करने वाले उद्देश्य-सी वर्ग के लिए sourcecode.cpp.objcpp पर प्रकार ("जानकारी प्राप्त करें" विंडो का उपयोग करके) सेट करना पड़ा।

+0

oddmeter में ठीक काम करती हैं इस सवाल का जवाब मेरे लिए काम किया, और मुझे लगता है कि इस मामले में सबसे सही जवाब है। फ़ाइल प्रकार को sourcecode.cpp.objcpp पर सेट करें। –

2

मेरे मामले में, एच और।प्रश्न में एम नियमित लक्ष्य के साथ ठीक बनाया गया है, और ऐप भी चला सकता है।

हालांकि बाद फाइल का सबसेट एक स्थिर पुस्तकालय लक्ष्य के तहत ले जाया जाता है, यह इस संकलन त्रुटि स्थिर पुस्तकालय बनाया गया है हो जाता है।

थोड़ी देर & के लिए फंस गया था कि ऊपर उल्लेख किया तकनीकों की कोशिश की, दुर्भाग्य से वे मेरे मामले में मदद नहीं की।

कहा कि इस त्रुटि केवल NSString * के लिए, उदाहरण के लिए,

  • extern double const kTimeout; // fine
  • extern NSString* const kImageType; // compile error

उपरोक्त विश्लेषण के बाद & थोड़ा विराम हुआ, अंत में समस्या जोड़कर हल हो गई है ज के लिए निम्न आयात - "Foundation/Foundation.h"

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