2012-07-19 12 views
24

के लिए नहीं मिला है मुझे संकलन समय पर एक त्रुटि है। अजीब लगता है। यह विस्तार दृश्य अनुप्रयोग के रूप में काम करता है, लेकिन एकल दृश्य का उपयोग करना प्रतीत नहीं होता है। इस त्रुटि विवरण है:लिंकर कमांड त्रुटि: 'ld: प्रतीक आर्किटेक्चर i386'

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_RssArticle", referenced from: 
     objc-class-ref in RssXmlParser.o 
    ld: symbol(s) not found for architecture i386 
    clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

एक्सकोड 4.3 का उपयोग कर रहे हैं? –

उत्तर

57

इन चरणों का प्रयास करें:

  1. XCode में अपनी परियोजना खोलें।

  2. एक्सकोड के बाईं ओर विंडो/पैनल में शीर्ष पर अपने प्रोजेक्ट नाम पर क्लिक करें।

  3. अब एक्सकोड के दाहिने तरफ पैनल से लक्ष्य का चयन करें।

  4. दाएं पैनल के शीर्ष से बिल्ड चरण का चयन करें। (यहां अन्य विकल्प बिल्ड सेटिंग्स, बिल्ड नियम होंगे)

  5. उसी पैनल में "संकलन स्रोत" खोलें, यहां जांचें: क्या सभी फ़ाइलें (.m) सूचीबद्ध हैं? नहीं तो सभी फ़ाइलों को जो सूची

  6. में नहीं है अपने त्रुटि यह RssXmlParser वहाँ नहीं लगता है के अनुसार तल में पर (+) चिह्न क्लिक करें (.m) फ़ाइलें जोड़ने के लिए, इस जोड़ सकते हैं और फिर से

संकलन यह अभी ठीक काम करेगा।

+0

एक्स-कोड का कौन सा संस्करण इस काम के लिए करता है? मुझे सही तरफ लक्ष्य नहीं मिल रहा है ... –

+1

@ कैमरून टर्बेल एक्सकोड 5.1 में, ऐसा लगता है: http://i.imgur.com/G7OCboX.png – Glide

+0

@iOSTest मैं एक ही मुद्दे में भाग गया। मैं जानना चाहता हूं कि ऐसा क्यों होता है, यद्यपि। – Glide

0

मैंने एक ही समस्या हल की क्योंकि मैंने अलग-अलग परियोजनाओं के रूप में घटक बनाए। मुख्य प्रोजेक्ट में फ़ोल्डरों को जोड़ने के बाद, मैं आयातित घटक समूह निर्देशिकाओं से .plist, .string और अतिरिक्त main.m फ़ाइलों को मिटाना भूल गया।

इन हटाया जा रहा है मेरी समस्या हल हो जाती है, क्योंकि एप्लिकेशन स्पष्ट रूप से हो रही थी परस्पर विरोधी निर्माण आदेशों ...

0

मैं फ़ाइल नाम नकल करने (मैं संपादक मेनू के माध्यम से NSManagedObjectContext उपवर्गों बनाया था स्वचालित रूप से कोर डेटा में) की वजह से इस त्रुटि का सामना करना पड़ा।

Xcode 5.0 के रूप में, बस छोड़कर पुन: प्रारंभ और xcode इस समझते हैं और यह तुम्हारे लिए ठीक करना चाहिए यदि आप बाएं हाथ फलक

2

मेरे मामले में में पीले रंग की चेतावनी पर क्लिक करें, मैं गलती से की एक नई उपवर्ग बनायाऔर .m फ़ाइलों की बजाय UIView.h और .c फ़ाइलों के साथ। एक्सटेंशन बदलना आसान था, लेकिन मैंने .m फ़ाइलों की सामग्री को बदलने के बारे में नहीं सोचा था। तो मेरी .h फ़ाइलों

#ifndef My_Project_MPMyView_h 
#define My_Project_MPMyView_h 

#import <UIKit/UIKit.h> 

@interface MPMyView : UIView 

@end 

#endif 

और मेरे .m फ़ाइलों को गलत तरीके से

#include <stdio.h> 

था जब मैं

@interface MPMyView : UIView 

@end 

@implementation MPMyView 

@end 

लिंकर त्रुटि तय किया गया था करने के लिए अपने .m फ़ाइलों को परिवर्तित किया था।

13

मुझे एहसास हुआ कि मुझे .xcodeproj फ़ाइल के बजाय .xcworkspace फ़ाइल का उपयोग करना पड़ा।

+1

वाह, मैं अभी बहुत बेवकूफ महसूस करता हूं। – Machado

+0

ओह मेरे भगवान। यह काम किया ... लेकिन क्यों ?? – Fomentia

+0

यह मेरे लिए ठीक काम करता है, लेकिन मैं यह भी जानना चाहूंगा कि क्यों। कोई स्पष्टीकरण? – Phantomazi

0

एक्सकोड 6.4 पर एक समान त्रुटि बस मेरे साथ हुई। एक एक्सकोड बग की तरह लगता है।

मेरा फ़िक्स ".o" फ़ाइल पर जाना था जिसने आपको आवश्यक सदस्यता सदस्यता को अनचेक और अनचेक कर दिया।

7

उत्पाद -> स्वच्छ, फिर उत्पाद -> भागो :)

0

मुझे लगता है कि यह हो सकता है कि आप एक परियोजना में (मुख्य कार्य के साथ) दो अलग अलग .सी फ़ाइल बनाने के लिए कोशिश कर रहे हैं। सी केवल आपको प्रत्येक परियोजना में एक मुख्य प्रवेश करने की अनुमति देता है।

26

किसी को भी विस्तृत त्रुटि को देखने के लिए टर्मिनल के लिए जाने के लिए और निर्देशिका जहां परियोजना है के पास जाकर

xcodebuild -verbose

चलाने के लिए सुझाव दे और बस त्रुटि पढ़ने नहीं दिख रहा है बहुत समय में मदद करता है

+0

यह वास्तव में एक उत्तर नहीं है लेकिन फिर भी इस + चयनित उत्तर ने मुझे मेरी समस्या का समाधान करने में मदद की! व्यक्तिगत रूप से, मेरे पास .m फ़ाइलों की सूची में दो प्लगइन्स। एम फ़ाइलें थीं (उसी उद्देश्य की सेवा की थीं)। मैंने एक को हटा दिया और इसे फिर से बनाया और इससे समस्या हल हो गई। –

0

मुझे नहीं पता कि यह कैसे काम करता था। लेकिन मैंने बस xcworkspace फ़ाइल पर क्लिक करके एक्सकोड बंद कर दिया और फिर से खोल दिया और मेरे लिए काम किया। आप उम्मीद कर सकते हैं कि यह आपकी समस्या का समाधान कर सकता है धन्यवाद।

0

alt दबाए रखें। शीर्ष टूलबार पर करने के लिए

उत्पाद> स्वच्छ निर्माण फ़ोल्डर

प्रेस "स्वच्छ बनाने के फ़ोल्डर" जाने के लिए और इसे बनाने और चलाने के लिए प्रतीक्षा। इसे बिल्ड फ़ाइल में किसी भी त्रुटि को हल करना चाहिए।

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