में lib ए और बी भी शामिल करें I ऐप विकास के लिए पुन: प्रयोज्य पुस्तकालयों का एक सेट बनाने का प्रयास कर रहा हूं, लेकिन मैं एक में भागना शुरू कर रहा हूं मुसीबत।डुप्लिकेट प्रतीक: स्थैतिक lib B में स्थिर lib ए को शामिल करें, XCode Project
मेरी स्थिर libs में से एक सामान्य उपयोग विधियों का एक सेट है (उद्देश्य-सी फाउंडेशन कक्षाओं पर श्रेणियां उनकी उपयोगिता में सुधार करने के लिए) जो मैं प्रत्येक परियोजना में उपयोग करने के लिए उपयोग करता हूं। (हम इसे लिब एक फोन करता हूँ ... यानी XCode प्रोजेक्ट एक libProjectA.a पैदा करता है)
तब मैं अन्य स्थिर libs, चीजें हैं जो गणित के लिए विशेष कोड होते हैं, आदि (हम इसे लिब बी फोन करता हूँ) लिब ए लिब ए के लिए लिंक क्योंकि इसे उस सामान्य कार्यक्षमता का उपयोग करने की आवश्यकता है। (यानी xCode प्रोजेक्ट बी libprrojectA.a के साथ लिंक करता है और libProjectB.a उत्पन्न करता है)
मेरी एक्सकोड प्रोजेक्ट में, मैं लिब ए पर शामिल होना और निर्भर करना चाहता हूं क्योंकि इसमें मेरे सामान्य उपयोग सामग्री हैं जो मैं हर समय उपयोग करता हूं। मैं भी लिब बी पर शामिल होना और निर्भर करना चाहता हूं क्योंकि मुझे उस विशेष गणित की कार्यक्षमता की आवश्यकता है। (यानी मेरा ऐप प्रोजेक्ट libProjectA.a और libProjectB.a से लिंक करना चाहता है)
हालांकि, जब मैं अपने एक्सकोड प्रोजेक्ट को बनाने का प्रयास करता हूं तो मुझे डुप्लिकेट प्रतीकों के लिए त्रुटियां मिलती हैं, क्योंकि लिब ए में परिभाषित प्रतीक भी परिभाषित किए जाते हैं लिब बी में
ld: duplicate symbol _OBJC_METACLASS_$_Foo in /Users/kenny/xcode_build/Release-iphonesimulator/lib_ApplicationCore.a(Foo.o) and /Users/kenny/xcode_build/Release-iphonesimulator/lib_SpecializedMath.a(Foo.o)
मैं कैसे इस समस्या को हल कर सकते हैं? मैं अपने ऐप विकास को गति देने के साथ-साथ परीक्षण/परिष्कृत कोड के माध्यम से स्थिरता में वृद्धि के लिए पुन: प्रयोज्य पुस्तकालयों को विकसित करना चाहता हूं। क्या मैं गलत परिप्रेक्ष्य से यह आ रहा हूं? मैं आईओएस के लिए विकास कर रहा हूं इसलिए मैं dylibs का उपयोग नहीं कर सकता, वे स्थिर होना चाहिए।
मैं अपने प्रोजेक्ट में इन पुस्तकालयों को कैसे शामिल कर सकता हूं जब वे एक दूसरे पर परस्पर निर्भर होते हैं और डुप्लिकेट प्रतीकों से बचते हैं?
परियोजना बी के लिए लिब ए के खिलाफ लिंक करने के लिए यह समझ में नहीं आता है कि यह आपके लिए कितना अजीब लगता है। यदि वे गतिशील पुस्तकालय थे तो यह ठीक है लेकिन वे स्थिर पुस्तकालय हैं यानी ऑब्जेक्ट फ़ाइलों के अभिलेखागार, और कुछ भी नहीं। lib ए के खिलाफ दिया गया "लिंक" करके आप lib एक से सभी वस्तुओं लेते हैं और उन्हें आप से क्या मतलब है परियोजना बी – Troubadour