2013-02-12 6 views
5

मैं आईओएस 6.1 और XCode 4.6OpenCV 2.4.4 और Tesseract 3.02.02 एक साथ लिंक मत

मैं एक समस्या है उपयोग कर रहा हूँ, OpenCV libc साथ संकलित किए जाने की आवश्यकता ++ (LLVM सी ++ 11) है, जबकि Tesseract 3.02.03 को "डिफ़ॉल्ट कंपाइलर" के साथ संकलित करने की आवश्यकता है।

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

कोई विचार ??

+0

अधिक accourare होने के लिए, OpenCV को मेरे आईओएस प्रोजेक्ट को संकलित करने की आवश्यकता है: libC++, जबकि टेसेरएक्ट को "डिफ़ॉल्ट कंपाइलर" की आवश्यकता होती है। – Shvalb

उत्तर

2

मैं सी ++ के साथ कोई विशेषज्ञ नहीं हूं लेकिन मुझे एक ही समस्या थी और कुछ परीक्षण और त्रुटि और इंटरनेट खोज के बहुत से मुझे लगता है कि मैं इसे हल करने में कामयाब रहा हूं।

जैसा कि मैं इसे समझता हूं, समस्या यह है कि ओपनसीवी और टेसेरैक्ट विभिन्न मानक पुस्तकालयों के साथ बनाए जाते हैं। नवीनतम ओपनसीवी libC++ के साथ बनाया गया है जबकि टेस्सेक्टैक्ट stdlibC++

का समाधान है उनमें से एक को पुनर्निर्माण करना है ताकि वे दोनों एक ही मानक लाइब्रेरी का उपयोग कर सकें। मैंने टेसेरैक्ट को फिर से कंपाइल करने का निर्णय लिया और here पर दिए गए निर्देशों का पालन किया जो लाइब्रेरी बनाने के लिए उपयोग किए जाने वाले build script का संदर्भ देता है।

मैं इस स्क्रिप्ट (फिर से एक त्रुटि, परीक्षण द्वारा, वास्तव में नहीं यकीन है कि यह सबसे अच्छा तरीका है) को संशोधित किया बजना ++ संकलक (CXX="/usr/bin/clang++") का इस्तेमाल किया और libc का उपयोग करने के ++ (CXXFLAGS="$CFLAGS -stdlib=libc++") और यह (कुछ चेतावनी के साथ यद्यपि) संकलित करता है। आपको कुछ शीर्षकों की प्रतिलिपि बनाने की भी आवश्यकता हो सकती है क्योंकि स्क्रिप्ट उन सभी की प्रतिलिपि नहीं लगती है।

फिर अपने आईओएस प्रोजेक्ट में डाउनलोड किए गए एक के बजाय इस लाइब्रेरी का उपयोग करें (बिल्ड सेटिंग्स में libC++ में वापस बदलने के लिए याद रखें) और सब कुछ संकलित और लिंक ठीक होगा।

अब तक यह रनटाइम में ठीक से काम करता प्रतीत होता है।

+0

काम करने लगता है। मैं अभी भी इस कॉन्फ़िगरेशन का परीक्षण कर रहा हूं, लेकिन अच्छा लग रहा है। धन्यवाद! – Sebastian

+1

क्या आप दूसरों के लिए गिटब में अपनी लाइब्रेरी फ़ाइलों को अपलोड करने के बजाय बस पुनः संयोजित करने के बजाय अपलोड करना चाहते हैं? –

+0

@barduck क्या आप संकलित लाइब्रेरी साझा कर सकते हैं? मैंने वह सब किया लेकिन अभी भी संकलन के साथ एक समस्या है। – Shmidt