से एमएसवीसी डीएलएल से लिंक करना मैं अपने स्वयं के एप्लिकेशन में LizardTech GeoExpress DSDK को लिंक करने का प्रयास कर रहा हूं। मैं जीसीसी का उपयोग करता हूं ताकि हम प्लेटफार्मों के लिए संकलित कर सकें। लिनक्स और मैक पर यह आसानी से काम करता है: वे एक स्थिर पुस्तकालय (libltidsdk.a
) और शीर्षलेख प्रदान करते हैं और हमें जो कुछ करना है, उनका उपयोग करना है।MinGW
विंडोज़ के लिए संकलन इतना आसान नहीं है। उन्होंने माइक्रोसॉफ्ट विजुअल स्टूडियो का उपयोग करके लाइब्रेरी बनाई है, और हम मिनजीडब्ल्यू का उपयोग करते हैं। मैंने मिनजीडब्ल्यू एफएक्यू पढ़ा है, और मैं नीचे दी गई समस्याओं में भाग रहा हूं। लाइब्रेरी सभी सी ++ है, इसलिए मेरा पहला सवाल: क्या यह भी संभव है?
बस डीएल के खिलाफ लिंकिंग के रूप में सभी सी ++ कॉल (रचनाकार, desctructors, विधियों, आदि) के लिए उपज "अनिर्धारित संदर्भ" त्रुटियों के रूप में लिंक।
MinGW विकी के आधार पर: http://www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs मैं उपयोगिता reimp
उपयोग करने के लिए कुछ उपयोगी में एक उदारीकरण कन्वर्ट करने के लिए सक्षम होना चाहिए। मैंने LizardTech द्वारा प्रदान की गई सभी .lib फ़ाइलों को आजमाया है, और वे सभी "अमान्य या दूषित आयात लाइब्रेरी" देते हैं। मैंने रींप उपयोगिता के संस्करण 0.4 और 0.3 दोनों की कोशिश की है।
विकी में वर्णित दूसरी विधि का उपयोग करके, मैंने एक .a संग्रह प्राप्त करने के लिए dll पर pexport और dlltool चलाया है, लेकिन यह वही अपरिभाषित संदर्भ उत्पन्न करता है।
बीटीडब्लू: मैंने नीचे चर्चा पढ़ी है। यह कुछ अस्पष्टता छोड़ देता है कि यह संभव है या नहीं, और मिनजीडब्ल्यू विकी पेज दिया गया ऐसा लगता है कि ऐसा करने योग्य होना चाहिए। यदि यह असंभव है, तो मुझे बस इतना ही पता होना चाहिए। यदि यह किया जा सकता है, तो मैं जानना चाहता हूं कि मैं इसे कैसे प्राप्त कर सकता हूं।
How to link to VS2008 generated .libs from g++
धन्यवाद!
धन्यवाद, यह वही पुष्टि है जिसे मैं ढूंढ रहा था। उनके पास एक सी इंटरफ़ेस है, और मैं इसका उपयोग कर रहा हूं, लेकिन यह C++ में उपलब्ध चीज़ों की तुलना में बहुत कम शक्तिशाली है। मैं उन्हें मिनीजीडब्ल्यू के लिए रिहा करने के लिए भी दबाव डाल रहा हूं। – IndigoFire
मैं दृश्य स्टूडियो संस्करण विशिष्ट रनटाइम msvcr70.dll, msvcr71.dll, msvcr80 के बजाय सी-रनटाइम निर्भरता सार्वभौमिक रूप से उपलब्ध msvcrt.dll है, क्योंकि यह तैनाती वास्तव में सरल बनाता है, क्योंकि यह सब कुछ तैनाती को आसान बनाता है। डीएलएल, msvcr90.dll और अब msvcr100.dll। –