2011-03-13 6 views
10

सब कुछ अपग्रेड करने से पहले कल एक्सकोड 3 में पूरी तरह से ठीक काम कर रहा था। इसलिए मैंने अपग्रेड पूरा किया, मेरे कंप्यूटर को पुनरारंभ किया, और मेरी पुरानी परियोजना खोली। मुझे हेडर पथ जैसी कुछ सेटिंग्स को पुन: कॉन्फ़िगर करना था ताकि मैं संकलित करना शुरू कर सकूं। मैं विज्ञापन मध्यस्थता के लिए AdWhirl उपयोग कर रहा हूँ, और इस बिंदु पर मेरी त्रुटियोंएक्सकोड 4 में अपग्रेड - डुप्लिकेट प्रतीक त्रुटियों की अंतहीन धारा निर्माण त्रुटियों के कारण

duplicate symbol _OBJC_METACLASS_$_SBJSON in /Users/Admin/Desktop/TMapLiteAdwhirl/AdWhirl/MMSDK/libMMSDK.a(SBJSON.o) and 
/Users/Admin/Library/Developer/Xcode/DerivedData/TruxMapLite-bgpylibztethnlhkfkdumpvrjvgy/Build/Intermediates/TruxMapLite.build/Debug-iphoneos/TruxMapLite.build/Objects-normal/armv6/SBJSON.o for architecture armv6 

की तरह कुछ पुस्तकालय में यह जिक्र किया है तो मुझे AdWhirl में शामिल कर रहा हूँ विज्ञापन नेटवर्क में से एक के लिए एसडीके है पढ़ने के लिए शुरू करते हैं। दोनों 'डुप्लिकेट प्रतीकों' समान फ़ाइल का संदर्भ लेते हैं, लेकिन वे विभिन्न पथों का उपयोग करते हैं। अगर मेरे पास अभी भी एक्सकोड 3 था, तो मैं बस इन पुस्तकालयों को बिल्ड पथ से बाहर करने का प्रयास करता हूं, लेकिन मुझे नहीं पता कि यह कैसे एक्सकोड 4 में किया जा सकता है। मैंने लाइब्रेरी को हटाने और सभी जुड़े हुए सभी तरीकों से सब कुछ करने की कोशिश की है मेरी परियोजना से फ़ाइलें, लेकिन जब मैं ऐसा करता हूं, तो मुझे AdWhirl निर्देशिका में एक अलग लाइब्रेरी के लिए एक ही प्रकार की त्रुटि मिल जाएगी।

यह अविश्वसनीय रूप से निराशाजनक है क्योंकि मेरे अपग्रेड से पहले सबकुछ सुचारू रूप से काम कर रहा था और मैं अपनी बाइनरी जमा करने के लिए तैयार था। अगर किसी के पास कोई सलाह है, तो आईडी इसे आज़माने के लिए खुश से अधिक हो। धन्यवाद!

+0

मुझे एक ही समस्या है, मैंने @ जस्टिन के जवाब को पढ़ा है, लेकिन मुझे उन पैरामीटर के लिए चेक नहीं मिल रहा है – JonLOo

उत्तर

5

मैं सिर्फ एक समान समस्या में पड़ गए और अपने बिल्ड सेटिंग संपादित करके इसका समाधान नहीं:

  1. चुनें बाएं (⌘-1) पर नाविक सूची से Project Navigator
  2. अपनी प्रोजेक्ट फ़ाइल का चयन करें।
  3. संपादक क्षेत्र में दिखाई देने वाली सूची से अपना लक्ष्य चुनें।
  4. Build Phases टैब पर स्विच करें।
  5. Link Binary with Libraries और/या Compile Sources डुप्लिकेट लाइब्रेरी के लिए जांचें।

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

1

मुझे आपके सेटअप के बारे में निश्चित नहीं है, लेकिन मुझे एक ही समस्या थी और इसे मेरे निर्माण स्थान को बदलकर तय किया गया। मैंने इसे xcode 3 में एक पूर्ण पथ पर सेट किया था, और इस सेटिंग को xcode 4 में बदलने के लिए भूल गया था। व्युत्पन्न डेटा विकल्प को बदलना तुरंत मेरी सभी त्रुटियों को ठीक करता है। यह विकल्प वरीयताओं में स्थित है-> स्थान

5

सुनिश्चित करें कि आप .m फ़ाइलों को आयात नहीं कर रहे हैं।

इस गलती ने मेरे लिए अंतहीन समस्याएं पैदा कीं।

+0

आपने अभी मुझे बहुत समय बचाया है :) – gillyD

0

मैंने बस अपनी कक्षाओं में से किसी एक के लिए हेडर फ़ाइल में #import कथन के साथ @class को बदलकर उस समस्या को ठीक किया है।

सैद्धांतिक रूप से केवल @class घोषणा (और # कार्यान्वयन समकक्ष में आयात) के साथ काम करना चाहिए, बस "डुप्लिकेट प्रतीक" त्रुटि के साथ संकलित नहीं करना चाहता था।

तो, अपने @class बनाम # आयात विवरणों की समीक्षा करें।

0

मुझे पता चला कि मेरे पुराने फ़ोल्डर्स में पुरानी मेकफ़ाइल बिल्ड से पुरानी ऑब्जेक्ट फ़ाइलें थीं। जब मैंने एक्सकोड में स्रोत फ़ोल्डर जोड़ा तो मैंने गलती से दोनों स्रोत और ऑब्जेक्ट फ़ाइलों को जोड़ा। इसके परिणामस्वरूप इन डुप्लिकेट प्रतीक त्रुटियां हुईं। मेरे स्रोत फ़ोल्डर से .o और .lo फ़ाइलों को निकालने में मदद मिली।

एक भी था।मेरे स्रोत फ़ोल्डर में किसी अन्य पुराने निर्माण से libs फ़ोल्डर। इसमें भी .o फ़ाइलें शामिल हैं। उन्हें हटाने से समस्या हल हो गई।