2009-06-23 16 views
7

के रूप में लाइब्रेरी समेत विचार Iphone के लिए एक एसएसएच क्लाइंट लिखने की कोशिश कर रहा हूं, और मैं ऐसा करने के लिए libssh2 ओपन सोर्स लाइब्रेरी का उपयोग करना चाहता हूं। यह सीबाइनरी बनाम स्रोत

में लिखा गया है, मुझे अपने आईफोन ऐप के लिए इस सी लाइब्रेरी को कैसे शामिल करना चाहिए? क्या मुझे इसे कुछ बाइनरी में संकलित करना चाहिए जिसे मैं अपने ऐप में शामिल करता हूं, या क्या मैं अपने प्रोजेक्ट में सभी स्रोत जोड़ता हूं और अपने बाकी ऐप के साथ इसे संकलित करने का प्रयास करता हूं?

उत्तर

3

मैं के रूप में इस सवाल का interpretting हूँ:

"मैं सी पुस्तकालय कोड एक बार संकलन करना चाहिए, और अपने प्रोजेक्ट में द्विआधारी पुस्तकालय शामिल हैं या मैं सभी स्रोत शामिल हैं और यह हर बार जब मैं निर्माण संकलन करना चाहिए? मेरा ऐप? "

यह निर्भर करता है। एक परियोजना जो मैं काम करता हूं उनमें से एक कई बाहरी पुस्तकालयों पर निर्भर करता है। असल में, हमारे पास एक साधारण नियम है:

  • क्या आपको लगता है कि आपको अक्सर सी पुस्तकालय में कोड बदलने की आवश्यकता होगी?

    • यदि आप कोड बदल रहे होंगे, या अक्सर संस्करण अपडेट कर रहे हैं, तो स्रोत शामिल करें और इसे अपनी शेष परियोजना के साथ बनाएं।
    • यदि आप अक्सर कोड को बदलने के लिए नहीं जा रहे हैं, तो यह आपके प्रोजेक्ट में पूर्व-निर्मित बाइनरी को शामिल करने का अर्थ हो सकता है।

पुस्तकालय के आकार पर निर्भर करता है, आप अपने मुख्य परियोजना की एक उप-परियोजना के रूप में अपनी परियोजना में एक विशिष्ट लक्ष्य के रूप में सेट अप करने के लिए, या भी अधिक लचीलेपन के लिए, कर सकते हैं।

यदि मैं आपकी जगह पर था, तो मैं समय से पहले libssh2 का निर्माण करूंगा और बस अपने आईफोन प्रोजेक्ट में बाइनरी लाइब्रेरी शामिल करूंगा। मैं अभी भी libssh2 स्रोत को चारों ओर रखता हूं, अगर इसे सड़क पर फिर से बनाया जाना आवश्यक है।

1

Three20 आईफ़ोन लाइब्रेरी में अपनी लाइब्रेरी को आपके xcode प्रोजेक्ट में जोड़ने पर बहुत अच्छा तरीका है। उसे एक शॉट दो।

2

मेरे पास एक आईफोन ऐप है जो 90% सी है। मुझे अपनी परियोजना और संकलन में तीसरे पक्ष के स्रोत जोड़ने में कोई समस्या नहीं है। मैं कोई संशोधन के साथ लुआ, zLib, और libpng का उपयोग कर रहा हूँ। मैंने यूनिस्टेड और libgen जैसे मानक पुस्तकालयों को भी शामिल किया है और वे सिर्फ ™

+0

मेरा अधिकांश ऐप सी भी है, सिवाय इसके कि मैं उद्देश्य-सी एपीआई कहां कर सकता हूं। मैं लुआ के उपयोग के बारे में उत्सुक हूँ। क्या आप आईट्यून्स के माध्यम से वितरित करना चाहते हैं?मैं पूछ रहा हूं क्योंकि मुझे एक दुभाषिया को एम्बेड करना अच्छा लगेगा लेकिन ऐप्पल द्वारा प्रदान किए गए किसी भी दुभाषियों के खिलाफ ऐप्पल के निषेध से मुझे डर गया है। ऐप स्टोर में लूआ की अनुमति है? – Nosredna

+0

आप एक स्क्रिप्टिंग भाषा का उपयोग करने के लिए स्वतंत्र हैं हालांकि आप लोगों को मनमाने ढंग से कोड लोड करने की अनुमति नहीं दे सकते। सुरक्षित होने के लिए मैं ऐप में स्क्रिप्ट (हार्ड कोड) संकलित करता हूं। –

0

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

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

बस आपको प्रोजेक्ट में स्रोत जोड़ने से ठीक काम करना चाहिए।

संबंधित मुद्दे