2009-03-08 13 views
7

के लिए पुस्तकालयों से पुस्तकालयों के खिलाफ लिंक करने का सही तरीका मैं आईफोन के लिए एक स्थिर पुस्तकालय लिख रहा हूं और मुझे आश्चर्य है कि मैं जो कर रहा हूं, उसकी सिफारिश की जाती है या मुझे एक अलग दृष्टिकोण लेना चाहिए।आईफोन/कोको टच

मैं जिस स्थिर पुस्तकालय को लिख रहा हूं वह libxml2 पर निर्भर है। libxml2 में एक गतिशील लाइब्रेरी (डाइलिब) और एक स्थिर पुस्तकालय (ए) है। मैंने दो दृष्टिकोणों की कोशिश की है।

दृष्टिकोण एक - जब मैं "-lxml2" "अन्य लिंकर झंडे" का निर्माण निम्न संदेश के साथ विफल रहता है जोड़कर स्थिर पुस्तकालय के खिलाफ लिंक करने का प्रयास:

/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library) 

दृष्टिकोण दो - मैं सफलतापूर्वक लिंक कर सकते हैं मेरी स्थिर लाइब्रेरी से गतिशील पुस्तकालय के खिलाफ, लेकिन मुझे यकीन नहीं है कि आईफोन पर इसकी अनुमति है (या उचित दृष्टिकोण)। भले ही मैं एक स्थिर पुस्तकालय का निर्माण कर रहा हूं, क्या ऐप्पल स्थिर पुस्तकालयों को अनुमति देता है जो गतिशील पुस्तकालयों के खिलाफ लिंक करते हैं? मैं अभी भी स्थिर पुस्तकालयों के बारे में सीख रहा हूं, लेकिन मेरी समझ से डिलिब से कोड को मेरे पुस्तकालय बनाने के लिए मेरे कोड के साथ जोड़ा जाएगा, इस प्रकार डाइलिब के खिलाफ लिंक करना कोई मुद्दा नहीं होना चाहिए।

संक्षेप में: [? बनाता है, लेकिन यह सही है और स्वीकार्य]

  • mylibrary.a - -> libxml2.a [काम नहीं करता]
  • mylibrary.a> libxml2.dylib

उत्तर

-8

ऐप्पल आपको एसडीके के साथ प्रदान किए गए फ्रेमवर्क और/या पुस्तकालयों को जोड़ने की अनुमति नहीं देता है।

मार्को

+1

दरअसल, एक्सकोड यह ठीक ठीक करने देता है। सार में अधिक, हालांकि, StackOverflow सही * आसानी से * आसानी से * आसानी से खोजने के लिए एक जगह होनी चाहिए! यदि आप नहीं जानते हैं, या आप निश्चित नहीं हैं, तो कृपया उत्तर के रूप में पोस्ट न करें। टिप्पणियों में प्रश्नों को स्पष्ट करने के लिए पूछें, या कुछ शोध करें जब तक कि आप सही उत्तर नहीं जानते! :) – Olie

8

libxml2.dylib एसडीके में उपलब्ध है। दाएं तरीका एक्सकोड में लक्ष्य नोड/ऐप को डबल-क्लिक करना है और फिर सामान्य के तहत + "लिंक्ड लाइब्रेरीज़" के अंतर्गत क्लिक करें ... आपको उस सूची में libxml2.dylib मिलना चाहिए।

0:42 इस Screencast में आप देख सकते हैं कि किसी प्रोजेक्ट में कोरग्राफिक्स कैसे जोड़ा जाता है।

+0

सही। मैं समझता हूं * कैसे * लिंक करना है। मेरा सवाल यह था कि यह स्थिर पुस्तकालयों से बाहरी पुस्तकालयों को जोड़ने के लिए उचित मानक है? हालांकि आप एक अच्छा मुद्दा बनाते हैं, जिसे मैं अनदेखा करता हूं। Libxml2.dylib एसडीके के साथ वितरित किया जाता है, इस प्रकार शायद इसकी अनुमति है। – Caged

+1

मैं एसडीके से उपलब्ध dylibs के स्थिर libs के साथ लिंक करने की सिफारिश नहीं करेंगे। इन्हें अन्य ढांचे द्वारा उपयोग किया जा सकता है और आप संस्करण समस्याओं में आ सकते हैं, यानी फाउंडेशन। फ्रेमवर्कवर्क libxml2 में खींचें – epatel

0

आप अन्य स्थिर पुस्तकालयों में पुस्तकालयों को स्थिर रूप से लिंक नहीं कर सकते हैं। यही कारण है कि अन्य स्थिर पुस्तकालयों पर निर्भर ढांचे और पुस्तकालय उपभोक्ता को पुस्तकालयों के निर्माण चरण या अन्य लिंकर ध्वज निर्माण सेटिंग के साथ मैन्युअल रूप से उनके लिंक बाइनरी में जोड़ने के लिए कहते हैं।