2012-01-02 15 views
26

क्या करना है मैं अब अपने प्रोजेक्ट को डिवाइस या सिम्युलेटर के लिए संकलित नहीं कर सकता। मुझे 13 ऐप्पल मैक-ओ-लिंकर त्रुटियां मिलती हैं। शेयरकिट का उपयोग करने में विफल होने के बाद यह सब शुरू हुआ। यहां त्रुटि से लॉग है:ऐप्पल मैक-ओ लिंकर त्रुटियां और मुझे नहीं पता कि

ld: warning: directory not found for option '-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks' 
Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_NSURLRequest", referenced from: 
     objc-class-ref in Brandsonic_Web_mobileAppDelegate.o 
     objc-class-ref in Brandsonic_Web_mobileViewController.o 
    "_OBJC_CLASS_$_NSAutoreleasePool", referenced from: 
     objc-class-ref in main.o 
    "_objc_msgSendSuper2", referenced from: 
     -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileViewController didReceiveMemoryWarning] in Brandsonic_Web_mobileViewController.o 
     -[Brandsonic_Web_mobileViewController dealloc] in Brandsonic_Web_mobileViewController.o 
    "_objc_setProperty", referenced from: 
     -[Brandsonic_Web_mobileAppDelegate setWindow:] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileAppDelegate setViewController:] in Brandsonic_Web_mobileAppDelegate.o 
    "__objc_empty_vtable", referenced from: 
     _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o 
     _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o 
     _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o 
     _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o 
     _OBJC_METACLASS_$_SecondView in SecondView.o 
     _OBJC_CLASS_$_SecondView in SecondView.o 
    "_objc_msgSend", referenced from: 
     _main in main.o 
     -[Brandsonic_Web_mobileAppDelegate application:didFinishLaunchingWithOptions:] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileAppDelegate GOOGLE] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileAppDelegate YOUTUBE] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileAppDelegate WIKI] in Brandsonic_Web_mobileAppDelegate.o 
     -[Brandsonic_Web_mobileViewController webView:shouldStartLoadWithRequest:navigationType:] in Brandsonic_Web_mobileViewController.o 
     ... 
    "__objc_empty_cache", referenced from: 
     _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o 
     _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o 
     _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o 
     _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o 
     _OBJC_METACLASS_$_SecondView in SecondView.o 
     _OBJC_CLASS_$_SecondView in SecondView.o 
    "_OBJC_CLASS_$_NSObject", referenced from: 
     _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o 
    "___CFConstantStringClassReference", referenced from: 
     CFString in Brandsonic_Web_mobileAppDelegate.o 
     CFString in Brandsonic_Web_mobileAppDelegate.o 
     CFString in Brandsonic_Web_mobileAppDelegate.o 
     CFString in Brandsonic_Web_mobileViewController.o 
     CFString in Brandsonic_Web_mobileViewController.o 
     CFString in Brandsonic_Web_mobileViewController.o 
     CFString in Brandsonic_Web_mobileViewController.o 
     ... 
    "_OBJC_CLASS_$_NSKeyedUnarchiver", referenced from: 
     objc-class-ref in Brandsonic_Web_mobileViewController.o 
    "_OBJC_CLASS_$_NSUserDefaults", referenced from: 
     objc-class-ref in Brandsonic_Web_mobileViewController.o 
    "_OBJC_CLASS_$_NSURL", referenced from: 
     objc-class-ref in Brandsonic_Web_mobileAppDelegate.o 
     objc-class-ref in Brandsonic_Web_mobileViewController.o 
    "_OBJC_METACLASS_$_NSObject", referenced from: 
     _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o 
     _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o 
     _OBJC_METACLASS_$_SecondView in SecondView.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
' 

मैं इसे कैसे ठीक करूं? कृपया मदद करे।

+1

आपकी परियोजना कैसे स्थापित की जाती है? ऐसा लगता है कि आपके पास 2 प्रमुख समस्याएं हैं, लेकिन आपको अपनी परियोजना के बारे में बहुत अधिक जानकारी प्रदान करने की आवश्यकता है। सबसे पहले, क्या आप किसी प्रकार की क्रैक लाइब्रेरी का उपयोग कर रहे हैं? ऐसा लगता है कि ... ऐसा लगता है कि आपने आईओएस एसडीके डाउनलोड किया है और सीधे इसे लिंक करने का प्रयास किया है। त्रुटियां इसलिए हैं क्योंकि यह आईओएस 4 एसडीके नहीं ढूंढ सकता जो आप गैर-मानक स्थान से उपयोग कर रहे थे और इसलिए फाउंडेशन लाइब्रेरी को लिंक नहीं कर सकते। यदि आप आईओएस 5 समर्थन (एक्सकोड 4.2.1) के साथ एक्सकोड के वैध संस्करण का उपयोग कर रहे हैं, तो अपने पुराने, फर्जी ढांचे को हटाएं, फाउंडेशन और ऐपकिट जोड़ें और फिर से संकलित करें। –

+0

धन्यवाद !! यह पता चला कि मेरे पास मेरी परियोजना में नींव ढांचा नहीं था। मैंने इसे जोड़ा और अब मैं संकलित कर सकता हूं! मुझे अभी भी 2 ऐप्पल मैक -0 लिंकर त्रुटियां मिलती हैं लेकिन कम से कम मैं संकलित कर सकता हूं और मेरे ऐप को फिर से लिखना नहीं चाहता हूं। धन्यवाद जेसन कोको, आपके सुझाव के बिना, मैंने कभी भी उचित ढांचे की जांच करने के बारे में सोचा नहीं होगा। –

+0

(संभावित रूप से असंबंधित) चेतावनी के लिए यह देखें: http://stackoverflow.com/questions/9458739/ld-warning-directory-not-found-for-option – LearnCocos2D

उत्तर

2

ऐसा लगता है कि प्रोजेक्ट फ़ाइल किसी भी तरह दूषित हो सकती है।

इसे ठीक करने का सबसे निश्चित तरीका एक नई परियोजना बनाना है, और अपनी फ़ाइलों और पुरानी जानकारी को स्थानांतरित करना है। इसके ऊपर से ऊपर की ओर बढ़ें।

यह ठीक करने का अगला सबसे संभावित तरीका है अपने वर्तमान प्रोजेक्ट में एक नया लक्ष्य बनाना, और देखें कि क्या यह संकलित होगा (यदि आपके पास पुराने लक्ष्य से कोई विशेष झंडे हैं तो आप उन्हें कॉपी करना चाहते हैं)।

इसके अलावा आप रिलीज बनाम बिल्ड के लिए संकलन करने का प्रयास कर सकते हैं और यदि उनमें से कोई काम करता है तो सभी कंपाइलर विकल्पों को देखें और देखें कि अलग क्या है।

यदि आपने Sharekit के लिए हेडर खोज पथ जोड़ा है, तो शायद पूरे शीर्षलेख खोज पथ को साफ़ करने का प्रयास करें और देखें कि क्या चीजें ठीक करती हैं। यह भी सुनिश्चित करें कि आपकी परियोजना अभी भी ढांचे सहित है जिसमें एक ब्रांड नई परियोजना शामिल है (UIKit और NSFoundation, संभवतः अन्य)।

0

समस्याओं अपने रास्ते में रिक्त स्थान हैं:

xcode लिंकर निम्नलिखित स्विच का उपयोग करता है:

-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks 

और के बाद से यह कहते हुए उद्धृत नहीं किया गया है यह काम नहीं करेगा। (यह फ़ोल्डर की तलाश में है "/Users/bbrandy95/Documents/Broken"

आप निर्देशिका का नाम बदलने चाहिए, या परियोजना सेटिंग्स के माध्यम से देखने के लिए और निर्देशिका को उद्धरण जोड़ें। (लेकिन यह पता लगाने के लिए मुश्किल)

+0

यह उद्धरणों का मुद्दा नहीं है। पूरा पथ "विकल्प" के हिस्से के रूप में दिखाई देता है, इसलिए जब यह लिंकर को पास किया गया था, तो यह ठीक से बच निकला और/या उद्धृत किया गया था। समस्या यह है कि वह शायद अपने पायरेटेड एसडीके को स्थानांतरित या हटा दिया गया है। –

+1

आप कैसे एक एसडीके समुद्री डाकू डाउनलोड कर सकते हैं आप मुफ्त में डाउनलोड कर सकते हैं? त्रुटि पहली पंक्ति में लिखी गई है ... यह रिक्त स्थान के साथ '-F "पथ होना चाहिए" यदि इसमें रिक्त स्थान हैं। – Bastian

+1

मैंने अपने एसडीके को समुद्री डाकू नहीं डाला। मैं दोहराना, मैंने अपने एसडीके समुद्री डाकू नहीं डाला। मैं मैक ऐप स्टोर से एक्सकोड 4 के लिए बाउथ और भुगतान किया जब यह हिम तेंदुए के लिए $ 4.99 था। फिर जब मैंने मैक ऐप स्टोर से शेर खरीदा तो मैंने एक्सकोड 4.1 डाउनलोड किया और 4.2 से अपडेट होने पर अपडेट किया गया। मैं त्रुटि के कारण 4.2.1 को अद्यतन करने में सक्षम नहीं हूं। मुझे नकली कोड मेरे काम पर हस्ताक्षर करना है क्योंकि मैं एक जेल्रैक डेवलपर हूं। मुझे नाराज है कि मुझ पर ऐसी चीज का आरोप लगाया जाएगा। –

49

हो सकता है एक समान के साथ हर एक के लिए त्रुटि। ऐसा होता है, तो आप सामान्य रूप से प्वाइंट के तहत "पथ" को हटा सकते हैं

target-> सेटिंग- बिल्ड> लाइब्रेरी खोज पथ enter image description here

+3

यदि आप पिक्सेल जैसे ढांचे का उपयोग कर रहे हैं, तो फ्रेमवर्क खोज पथ के लिए एक ही चीज़ करने का प्रयास करें ('$ (विरासत में) अकेले छोड़कर)। –

+0

धन्यवाद, पूरी तरह से काम करता है – iOSAppDev

+4

लेकिन अगर मेरे पास पथ में कोई वस्तु नहीं है तो क्या होगा? –

0

मैं भी टी था 45 समान प्रकार की त्रुटियों के साथ वह वही समस्या है, जब मैं अपनी परियोजना में libxml2.dylib जोड़ता हूं तो त्रुटियां गायब हो जाती हैं।

0

कुछ मामलों में आपकी लाइब्रेरी खोज पथ खाली है। क्योंकि कई ऐप्पल-मैक-ओ लिंकर त्रुटियां हैं।

मेरा उत्तर भी देखें।

Apple Mach-O Linker Error using Core Data classes in OCUnit

0

अब मैं अपने परिस्थितियों के लिए एक सबसे हाल का iOS संस्करण का चयन के रूप में तैनाती के लक्ष्य मेरे लिए यह सुधारा इस मुद्दे था। मेरी परियोजना डिफ़ॉल्ट रूप से आईओएस 5 पर तैनात करने के लिए सेट की गई थी और इसे 7 (सबसे हालिया) में बदलकर चाल चल रही थी।

आईओएस विकास के लिए किसी भी नए व्यक्ति के लिए यह नेविगेटर> परिनियोजन जानकारी> परिनियोजन लक्ष्य में अपने एक्सकोड प्रोजेक्ट फ़ाइल पर क्लिक करके और ड्रॉप डाउन मेनू से उचित संस्करण का चयन करके किया जा सकता है।

मुझे संदेह है कि इससे कुछ ऐसे मुद्दों को हल किया जाएगा जो दूसरों के पास हैं लेकिन मेरे जैसे ही नाव में कुछ लोग हो सकते हैं।

18

यह त्रुटि तब हो सकती है जब किसी प्रोजेक्ट में एक से अधिक बार एक फ्रेमवर्क जोड़ा जाता है।

  • आप डुप्लिकेट को हटाकर इसे ठीक कर सकते हैं। इसे खोजने के लिए, एक्सकोड प्रोजेक्ट नेविगेटर में ढांचे का चयन करें और चुनें फाइंडर में दिखाएं। फिर अपनी परियोजना को साफ और बनाएं।

यह भी हो सकता है यदि आप ढांचे के शीर्षलेख फ़ाइलों या उनके संदर्भ में अनुपलब्ध हैं।

  • उस स्थिति में, आपको एसडीके या ढांचे को हटाने और इसे फिर से जोड़ने का प्रयास करना चाहिए।

शुभकामनाएं।

+1

4 दिनों के बाद मेरी समस्या तय! हुज़्ज़ाह! – Rockyfish

+1

आप नायक हैं !!!!! – YellowJ

+0

यह मेरी समस्या नहीं थी, बल्कि वहां कुछ ढांचे सूचीबद्ध थे जहां वास्तविक ढांचे के पीछे गायब थे (ये ढांचे लाल पाठ के साथ दिखाए जाते हैं)। मुझे बस उन ढांचे को हटाना पड़ा और – Marmoy

1

स्रोत पृष्ठ संकलित करने के लिए .m फ़ाइल जोड़ें।

कदम: -

  1. नेविगेशन मेनू
  2. में वह इस परियोजना पर क्लिक लक्ष्य
  3. चरणों का निर्माण
  4. + बटन का चयन करें और संकलन स्रोतों में फ़ाइल जोड़ने के चयन का चयन करें।

आशा है कि इस समस्या को

4

के साथ किसी में मदद करता है आप स्थापित निर्भरता CocoaPods का उपयोग कर, तो आप अपने .xcworkspace फ़ाइल पर क्लिक करके अपने XCode प्रोजेक्ट खोलने के लिए सुनिश्चित करें, और नहीं.xcodeproj फ़ाइल।

+0

हां। मेरे लिए काम किया! मैं कॉर्डोवा का उपयोग कर रहा हूँ। स्पष्ट रूप से कॉर्डोवा कोकोपोड का उपयोग करता है। धन्यवाद! – hol

0

ऐसा इसलिए है क्योंकि प्रोजेक्ट ने संकलित स्रोतों में कोर डेटा की xcdatamodeld फ़ाइल डाली। अपनी प्रोजेक्ट का चयन करें -> चरण बनाएं -> संकलन स्रोत करें और projectName.xcdatamodeld फ़ाइल को हटाएं। और यह भी जांचें कि आपने फ़ाइल के बजाय .m फ़ाइल आयात की है, तो यह भी वही लिंकर त्रुटि देता है। सभी # आयात कोड देखें। और जांचें कि क्या आपने लाइब्रेरी में कोर डेटा फ्रेम काम जोड़ा है और आयातित कोर डेटा .h फ़ाइल आयात की है। NSManagedObject के निर्माण के लिए जांचें और इसकी फ़ाइल आयात करें। बस इसे आज़माएं और अभी भी कोई त्रुटि होने पर मुझे जवाब दें। >Enable BitcodeNO

+0

बहुत बहुत धन्यवाद ... !! यह काम कर रहा है।!!! –

0

मैं एक ही समस्या,

मैं बस विकल्प बिल्ड सेट था।

यह त्रुटि थी: एप्पल मच-ओ लिंकर errror

यह पता चला है कि मैं एक प्रोटोकॉल परिभाषित किया था और एक प्रोटोकॉल विस्तार लागू किया। प्रोटोकॉल एक्सटेंशन का एक तरीका सार्वजनिक था, लेकिन प्रोटोकॉल स्वयं नहीं था। और इससे ऐप्पल मैक-ओ लिंकर त्रुटि हुई।

उदाहरण:

प्रोटोकॉल MyProtocol {var क्षेत्र: स्ट्रिंग {मिल}}

विस्तार MyProtocol {सार्वजनिक समारोह giveMeSomething() -> स्ट्रिंग}

सार्वजनिक वर्ग MyClass: MyProtocol {}

विवरण में माय मायक्रॉस माइक्रोसॉफ्ट से संदर्भित त्रुटि का वर्णन -> MyProtocol giveMeSomething() से संदर्भित ...

तो, समाधान Myprotocol भी सार्वजनिक

आशा है कि किसी को मदद करता है बनाने के लिए किया गया था।

0

को मैं अपने स्वयं विकसित cocoapod के साथ इस समस्या का सामना करना पड़ा -