2012-03-25 11 views
9

मैं ZBar SDK का उपयोग कर एक आईओएस, कोड स्कैनर प्रोजेक्ट का निर्माण कर रहा हूं। मैं libzbar.a स्थिर पुस्तकालय सहित, ZBar के स्रोत से सीधे अपनी परियोजना बनाने की कोशिश कर रहा हूं।स्थैतिक पुस्तकालय का उपयोग करने के बजाय परियोजना के साथ ज़ेडबार एसडीके कैसे बनाया जाए?

मैंने ज़ेडबार स्रोत डाउनलोड किया है जिसमें libzbar.a बनाने के लिए एक्सकोड प्रोजेक्ट शामिल है। मैंने परियोजना से सभी स्रोत फ़ाइलों की प्रतिलिपि बनाने की कोशिश की लेकिन यह काम नहीं किया। मैं अपरिभाषित प्रतीक त्रुटियों को प्राप्त करता रहता हूं।

क्या स्रोत स्रोतों को शामिल किया जाना चाहिए, इस पर विचार करते हुए कि मुझे केवल आईओएस का समर्थन करने की आवश्यकता है?

क्या परियोजना संरचना का निर्माण करने के लिए फ़ोल्डर संरचना का सख्ती से पालन किया जाना चाहिए?

यदि मैं स्रोत फ़ाइलों को सख्ती से शामिल करता हूं तो बिल्ड सेटिंग्स की कोई आवश्यकता होगी?

संपादित करें: मैंने उसी फ़ोल्डर संरचना का पालन किया और libzbar के XCode प्रोजेक्ट में उपयोग की गई सेटिंग्स का निर्माण किया। मैंने लाइब्रेरी बनाने में कामयाब रहा है लेकिन लिंकिंग करते समय भी यह असफल रहा है। मुझे त्रुटि मिलती है: ld: duplicate symbol _OBJC_METACLASS सभी स्रोत फ़ाइलों के लिए। मैंने दो बार जांच की है, परियोजना में मूल libzbar.a स्थैतिक पुस्तकालय या इन स्रोत फ़ाइलों की एक से अधिक घटनाओं के लिए कोई संदर्भ नहीं हैं। यदि मैं उनके लिए संदर्भ हटा देता हूं, तो प्रोजेक्ट ठीक बनाता है, लेकिन तब भी विफल रहता है जब लाइब्रेरी से किसी भी प्रतीक का संदर्भ दिया जाता है। मुझे लगता है कि मुझे अभी भी कुछ याद आ रहा है !!

+0

ZBar एक ओपन सोर्स प्रोजेक्ट है:

4) निम्नलिखित उपयोगकर्ता परिभाषित निर्माण परियोजना के लिए सेटिंग जोड़ा गया एक स्थिर पुस्तकालय के रूप में वितरित किया गया ताकि इसे एकीकृत करना आसान हो सके, नहीं टी क्योंकि डेवलपर्स नहीं चाहते हैं कि लोग स्रोत कोड देखें। वास्तव में यदि आप प्रोजेक्ट साइट पर जाते हैं, तो स्रोत डाउनलोड करने का लिंक स्थिर पुस्तकालय डाउनलोड करने के लिए लिंक के ठीक नीचे है। – Vin

+0

आपको क्या त्रुटियां मिलीं? – rakeshNS

+0

@rakeshNS सभी त्रुटियां या तो हेडर फाइलें या अपरिभाषित प्रतीकों को याद कर रही हैं। – Vin

उत्तर

3

मैंने अंततः इस समस्या को हल किया है। यहां दिए गए कदम हैं:

1) प्रोजेक्ट की स्रोत फ़ाइलों को मेरी परियोजना में कॉपी किया गया।

2) मेरी परियोजना से libzbar.a की निर्भरता को हटा दिया।

3) प्रोजेक्ट की निर्माण सेटिंग Header Search Paths पर स्रोत और शीर्षलेख वाले फ़ोल्डर में पथ जोड़ा गया।,

EXCLUDE_SOURCE_FILE_NAMES
GCC_MODEL_TUNING
PREBINDING और
USE_HEADERMAP

+0

आपने स्रोत कोड कहां डाउनलोड किया? मुझे किस वर्ग को शामिल करने की आवश्यकता है? – Dejell

+0

@Odelya स्रोत कोड http://sourceforge.net/projects/zbar/ पर उपलब्ध है। I. स्रोत कोड से सभी कक्षाएं शामिल हैं। – Vin

0

आपको अपने कोड को स्रोत कोड से स्थिर लाइब्रेरी बनाना चाहिए, फिर अपनी परियोजना में आउटपुट स्थिर लाइब्रेरी जोड़ें, या परियोजनाओं को एकसाथ लिंक करें और अपनी परियोजना के निर्माण से पहले स्थिर लाइब्रेरी के निर्माण को मजबूर करें।

डिफ़ॉल्ट मर्क्युरियल रिपोजिटरी से ज़िप फ़ाइल को डाउनलोड करने और Xcode में फ़ाइल खोलने, लक्ष्य के चयन के "EmbedReader" भाग पर क्लिक करें बॉक्स ड्रॉप डाउन और "zBarSDK"

एक बार जब आप करने के लिए स्विच करने के लिए स्विच करने के बाद zBarSDK, बस उत्पाद मेनू से बनाएं और आपके पास अपनी स्थिर लाइब्रेरी फ़ाइल होनी चाहिए ....

+0

आपके उत्तर लेफ्टेरिस के लिए धन्यवाद लेकिन वह हिस्सा काफी स्पष्ट है। मैं कोड में कुछ बड़े बदलाव करने की योजना बना रहा हूं और भविष्य में कोड को अन्य डेवलपर्स द्वारा आसानी से बनाए रखना चाहता हूं। अगर परियोजना उत्पन्न हो, तो सीधे परियोजना में कोड बदलना, एक अलग परियोजना खोलने, परिवर्तन करने, पुस्तकालय को संकलित करने और फिर मुख्य परियोजना में शामिल होने के बजाय मेरे लिए बेहतर विकल्प प्रतीत होता है। – Vin

-1

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

मैंने इस tutorial का उपयोग किया। यह आपकी जरूरतों के लिए सहायक भी हो सकता है।

+0

आपके उत्तर के लिए धन्यवाद Alivig लेकिन किसी भी तरह zxing मेरी आवश्यकताओं के अनुरूप नहीं है। मुझे केवल ज़बर का उपयोग करना है। – Vin

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