objective c - निर्माण के साथ विफल: एलडी: डुप्लिकेट प्रतीक_OBJC_CLASS_$_बीजगणित 5FirstViewController




objective-c ios (19)

आईफोन सिम्युलेटर के माध्यम से अपना ऐप चलाने पर मुझे अचानक यह त्रुटि मिल रही है:

clang: त्रुटि: लिंकर कमांड निकास कोड 1 के साथ विफल रहा (उपयोग -v आमंत्रण देखने के लिए):

ld: डुप्लिकेट प्रतीक _OBJC_CLASS _ $ _ बीजगणित 5 फर्स्ट व्यू कंट्रोलर ... / बीजगणित 5-anwcuftojtxtgkfootneeeqhwztj / बिल्ड / इंटरमीडिएट्स / बीजगणित 5.बिल्ड / डीबग-आईफ़ोनसिम्युलेटर / बीजगणित 5.बिल्ड / ऑब्जेक्ट्स-सामान्य / i386 / व्यायाम दृश्य कंट्रोलर.ओ और ... / बीजगणित 5-anwcuftojtxtgkfootneeeqhwztj / बिल्ड / इंटरमीडिएट्स / बीजगणित 5.बिल्ड / डीबग-आईफ़ोनसिम्युलेटर / पीएसएलई बीजगणित 5.बिल्ड / ऑब्जेक्ट्स- सामान्य / i386/PSLE_Algebra5FirstViewController.o आर्किटेक्चर i386 के लिए

यह सब किस बारे मे है?


"लिंक बाइनरी विद लाइब्रेरीज़" में पुराने प्रोजेक्ट नाम पॉड लाइब्रेरी थी। हटाने के बाद फिक्स्ड।

  1. सामग्री सूचीबद्ध करें
  2. परियोजना
  3. चरण बनाएँ
  4. पुस्तकालयों के साथ बाइनरी लिंक करें
  5. बहिष्कृत पुस्तकालय निकालें।

'लिंकर कमांड निकास कोड 1 के साथ विफल रहा (उपयोग -v को देखने के लिए उपयोग करें)' - आईफोन पर फोनगैप एप्लिकेशन चलाते समय मुझे यह त्रुटि मिली। मैंने बिल्ड सक्रिय आर्किटेक्चर केवल हां तक ​​बदल दिया और यह ठीक काम किया।


TableViewController में ViewController.m आयात करते समय मैंने उससे मुलाकात की। '#import "ViewController.m को हटाने का प्रयास करें" अगर यह निकला है। उममीद है कि इससे मदद मिलेगी!


इस मुद्दे को हल करने का एकमात्र (और निरंतर) तरीका कमांड लाइन से परीक्षण का निर्माण कर रहा है:

xcodebuild -workspace MyProject.xcworkspace/ -scheme MyScheme -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3.1' test

तो, इस बिंदु पर, आपका संकलन निश्चित रूप से असफल हो जाएगा लेकिन आप सभी लिंकिंग समस्या देखेंगे। मेरे मामले में, मुझे कई समस्याएं थीं जैसे कि:

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

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


एक मामले में, मैंने परियोजना में एक नई कक्षा '.h और .m खींचते समय यह त्रुटि देखी। मुझे मिला एकमात्र समाधान इन फ़ाइलों के संदर्भों को हटाना था और फिर उन्हें प्रोजेक्ट मेनू के माध्यम से वापस जोड़ना था।


ऐसा तब हो सकता है जब "बिल्ड चरण" में आपके लक्ष्य के "संकलित स्रोत" खंड में एक ही .m फ़ाइल को कई बार संदर्भित किया गया हो। डुप्लिकेट प्रविष्टियों को हटाएं और आपको ठीक होना चाहिए।


ऐसा लगता है कि कक्षा बीजगणित 5FirstViewController कई बार संकलित है।

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

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

अंत में, आप एक साफ और पुनर्निर्माण का प्रयास कर सकते हैं, अगर पुरानी ऑब्जेक्ट फ़ाइलें अभी भी मौजूद हैं और संकलित फ़ाइलों में कुछ जंक है। शायद ज़रुरत पड़े...

संपादित करें

मैं यह भी ध्यान देता हूं कि दूसरा संदर्भ ExercisesViewController के लिए फ़ाइल में बनाया गया है। शायद इस फाइल में कुछ है। या तो आपने #। के बजाय बीजगणित 5 फर्स्ट व्यू कंट्रोलर फ़ाइल को आयात किया है, या ExercisesViewController के पास @ कार्यान्वयन (व्यायाम दृश्य नियंत्रक) की बजाय @ कार्यान्वयन (बीजगणित 5 फर्स्ट व्यू कंट्रोलर) है, या इस फ़ाइल के साथ कुछ जंक था जो क्लीन एक पुनर्निर्माण के साथ साफ हो जाएगा।


ऐसा होता है, कुछ फाइलें "संकलित स्रोत" खंड में अनुपलब्ध हैं, या कुछ फ़ाइल (ओं) के लिए डुप्लिकेट प्रविष्टियां पाई जाती हैं। मेरे मामले में, मेरे पास दो फाइलों के लिए डुप्लिकेट प्रविष्टियां थीं, मैंने प्रत्येक फाइल के लिए एक प्रविष्टि हटा दी, जिसने मेरी समस्या हल की। उम्मीद है की यह मदद करेगा।


कार्यान्वयन फ़ाइल (सही ढंग से) के बजाय हेडर फ़ाइल (गलत तरीके से) में एक const * NSString घोषित करके भी यह समस्या थी


बस सीएमडी + शिफ्ट + के की सफाई, फिर सीएमडी + बी का निर्माण मेरे लिए काम किया।


मुझे इसी तरह की त्रुटि मिल रही थी और मैंने इसे इस तरह हल किया।

'Pods' प्रोजेक्ट और आपके ऐप के लक्ष्य के लिए केवल बिल्ड एक्टिव आर्किटेक्चर को सेट करने का प्रयास करें


मुझे एक ही त्रुटि थी। मैंने एक ऑडियो फ्रेम काम आयात किया था जिसे मैं अब उपयोग नहीं कर रहा था। मैंने इसे हटा दिया (इसे हटाएं नहीं!) और यह सफलतापूर्वक बनाया गया।


मुझे किसी अन्य प्रोजेक्ट से फ़ाइलों को जोड़ने पर एक ही त्रुटि मिली, जैसे @paiego ने समझाया। मेरी त्रुटि यह थी कि मैंने " लक्ष्य में जोड़ें " की जांच नहीं की थी। जैसा कि ऊपर बताया गया है, मैंने संदर्भ हटा दिए और फ़ाइलों को फिर से जोड़ा लेकिन इस बार " लक्ष्य में जोड़ें " की जांच की गई।


मुझे यह article मिला जो मेरे लिए एक समाधान प्रदान करता था। यह एक्सकोड 7 से संबंधित है जहां कोई सामान्य ब्लॉक के लिए डिफ़ॉल्ट पिछले संस्करणों में नहीं बल्कि हां है।

यह लेख से उद्धरण है:

समस्या यह प्रतीत होती है कि बिल्ड सेटिंग्स फलक में "Apple LLVM 6.1 - Code Generation" अनुभाग में "कोई सामान्य ब्लॉक" Xcode के नवीनतम संस्करण में, हाँ पर सेट नहीं है।

इस कारण मैंने परिपत्र संदर्भों के रूप में वर्णन किया था, जहां मेरे संकलन स्रोतों में शामिल एक वर्ग को किसी अन्य स्रोत फ़ाइल (appDelegate.m) में #import के माध्यम से संदर्भित किया गया था। इसने मूल आधार वर्ग में घोषित चर के लिए डुप्लिकेट ब्लॉक का कारण बना दिया।

मूल्य को बदलने के लिए मेरे ऐप को मेरी समस्या को संकलित और हल करने में तुरंत सक्षम किया गया।


मेरे पास लाइब्रेरी के साथ एक ही समस्या थी, और मैंने यहां सूचीबद्ध सभी उत्तरों की कोशिश की और कुछ भी मदद नहीं की।

मैं पुस्तकालयों के साथ लिंक बाइनरी से लाइब्रेरी को हटा रहा था और फिर इसे फिर से जोड़ रहा था और यह ठीक काम करता था।


मेरे मामले में मेरे पास अन्य लिंकर ध्वज में लाइब्रेरी का संदर्भ था। इसे हटाने से त्रुटि से छुटकारा पा लिया गया।


मैंने इसे एक बार (। गलती से) एक ही कक्षा में .h और .m फ़ाइलों को आयात करके प्राप्त किया।


यदि आपके पास गुम लाइब्रेरी या फ़ाइल है तो इस समस्या पर भिन्नताएं हो सकती हैं। जांचें कि आपके प्रोजेक्ट एक्सप्लोरर में कोई लापता फाइल नहीं है: यदि एक्सकोड उन्हें नहीं ढूंढ पाता है तो वे लाल रंग में लिखे जाएंगे।


[एक्ससीडीई 7.1 अद्यतन]

पहला विकल्प जो काम करता था:

मैंने Deployment Target को 7.1 से 8.1 तक बदल दिया और त्रुटि चली गई।

उम्मीद है कि किसी की मदद करता है।

अद्यतन (दिन 2) : दूसरी बार मैं यहां 2 दिनों में वापस आ गया हूं।

दिन 2 पर मुझे इस कष्टप्रद त्रुटि के अलावा और अधिक त्रुटियां मिलनी शुरू हुईं। समस्या एक विरोधाभासी फ़ाइल थी जिसे एक्सकोड पहचान नहीं पाया था। मैंने सहायता के रूप में नीचे दिए गए लिंक का उपयोग किया:

  1. "_OBJC_CLASS _ $ _ ViewsampleViewController", से संदर्भित:

  2. 'ld: चेतावनी: विकल्प विकल्प के लिए नहीं मिला'

और अंत में:

  1. "_OBJC_CLASS _ $ _ ViewsampleViewController", से संदर्भित:

मैं FrameWork Search Paths + Compile Resources + Run Script Phases + फली से सबकुछ हटा रहा था और फिर अंततः सफलता प्राप्त करने के लिए उन्हें दोबारा स्थापित कर रहा था।

मेरे आकार (दिन 2 पर) पर समस्या विवादित फ़ाइलों या फ़ाइलों के साथ एक समस्या थी जो एक्सकोड पहचान नहीं पाए थे।

लेकिन आखिरकार, सब कुछ हटाकर (ऊपर उल्लिखित और लिंक में), कई बार सफाई और फली / फ्रेमवर्क / रन स्क्रिप्ट चरणों को पुनर्स्थापित करने में मदद मिली।

वास्तव में उम्मीद है कि यह किसी की मदद करता है।





ios5.1