2012-10-30 12 views
6

मेरे पास एक प्रोजेक्ट है जो ओपनसीवी और सीवीब्लोब दोनों से जुड़ा हुआ है, लेकिन सीवीब्लॉब ओपनसीवी से भी जुड़ा हुआ है। ओपनसीवी और सीवीब्लोब दोनों स्थिर पुस्तकालयों के रूप में बनाए गए हैं।क्या स्थिर लाइब्रेरी को दो बार डुप्लिकेशंस में जोड़ना है?

क्या मेरे निष्पादन योग्य के पास सभी ओपनसीवी कार्यों की 2 प्रतियां हैं जिनका उपयोग मेरे कोड और सीवीब्लोब द्वारा किया जाता है, या क्या लिंकर इसका पता लगाता है और अनावश्यकता को हटा देता है?

cvBlob और मेरा कोड उसी ओपनसीवी lib फ़ाइलों को लिंक करता है।

+1

यह वास्तव में एक बहुत ही आम स्थिति है - * हर कोई * सीआरटी के लिए लिंक उदाहरण के लिए। लिंकर बिना पसीने के इसे संभालता है। –

+0

क्या होता है हालांकि इस मामले में एक ही पुस्तकालय के दो अलग-अलग संस्करण हैं? क्या यह गैर-निर्धारिती है जो वास्तव में उपयोग किया जाएगा? –

+2

यदि आपके पास * अलग * .lib फ़ाइलें हैं जो समान फ़ंक्शंस को लागू करती हैं, तो आपको लिंक समय पर "डुप्लिकेट प्रतीक" त्रुटियां/चेतावनियां मिलेंगी। – cbranch

उत्तर

4

यदि वे दोनों एक ही .lib फ़ाइलों से लिंक करते हैं, तो अंतिम निष्पादन योग्य में केवल एक प्रति है।

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