2011-12-20 20 views
10

स्थिति:VS2010: एक भी पुस्तकालय में लिंक स्थिर

मैं VS2010 के साथ एक पुस्तकालय का निर्माण कर रहा हूँ, और यह LibraryA पर एक निर्भरता है। मैं केवल लाइब्रेरी ऑफ़र की कई विशेषताओं में से एक का उपयोग कर रहा हूं, इसलिए मैं इसे स्थिर रूप से लिंक करना चाहता हूं।

मैं जो कुछ भी पढ़ रहा हूं, वह मुझे पूरी परियोजना को एमएफसी के खिलाफ स्थिर रूप से जोड़ने के लिए कहता है, जो कुछ मैं नहीं करना चाहता हूं। मैं विंडोज़ डीएलएल के खिलाफ गतिशील रूप से लिंक करने वाली अपनी लाइब्रेरी के साथ ठीक हूं; मैं केवल लाइब्रेरी के खिलाफ स्थिर रूप से लिंक करना चाहता हूं।

विकल्प विंडोज़ के साथ घूमते हुए, मुझे ऐसा विकल्प नहीं दिख रहा है। क्या यह वास्तव में सब कुछ या कुछ भी नहीं है?

धन्यवाद, बेन

+0

"एमवीसी के खिलाफ स्थैतिक लिंक" व्याख्या करना मुश्किल है। क्या आपका मतलब सीआरटी है? केवल/एमडी बनाम/एमटी विकल्प मायने रखता है। विंडोज डीएलएल एक मुद्दा नहीं हैं और हमेशा गतिशील रूप से जुड़े होते हैं, कोई अन्य विकल्प नहीं होता है। –

+0

क्या लाइब्रेरी एक डीएल के रूप में आती है (लिंक करने के लिए एक lib के साथ) या सिर्फ एक lib? कुछ तृतीय पक्ष पुस्तकालय दोनों के रूप में आते हैं ताकि आप जिस तरीके से लिंक करना चाहते हैं उसे चुन सकें। यदि यह आपकी लाइब्रेरी/कोड है तो आप चुन सकते हैं कि आप इसे कैसे बनाते हैं और लिंक करते हैं। –

+0

@ हंसपैसेंट - मेरी गलती (यह एमएफसी थी)। Http://stackoverflow.com/questions/3230/how-do-you-pack-a-visual-studio-c-project-for-release देखें - शीर्ष उत्तर वहां इसके बारे में बात करता है। यह मेरी स्थिति के करीब है, लेकिन वही नहीं। – Ben

उत्तर

27

यहाँ मेरे अपने प्रश्न का उत्तर देना:

तुम सब स्थिर से जोड़ने के लिए वी.एस. में एक पुस्तकालय है क्या करने की जरूरत:

1) करने के लिए उदारीकरण फ़ाइल जोड़ें गुणों में मिली सूची -> लिंकर -> इनपुट: अतिरिक्त निर्भरताएं।

2) निर्देशिका जोड़ें कि .lib फ़ाइल गुणों पर स्थित है -> लिंकर -> सामान्य: अतिरिक्त लाइब्रेरी निर्देशिकाएं।

यदि .lib फ़ाइल एक स्थैतिक रूप से जुड़ी लाइब्रेरी है, तो आपको बस इतना करना है।

मुख्य कारण मैं उलझन में था कि एक .lib फ़ाइल एक डीएल के साथ एक साथी फ़ाइल भी हो सकती है, न कि स्थिर पुस्तकालय स्वयं।

+6

आप मूर्ख नहीं हैं, आप (शायद) मानव हैं। ध्यान दें कि यदि आप एक ही समय में दोनों परियोजनाओं (यानी एक ही समाधान में) बना रहे हैं, तो आप एक प्रोजेक्ट को दूसरे पर निर्भर करने के लिए सेट कर सकते हैं और विजुअल स्टूडियो स्वचालित रूप से इसे अतिरिक्त रूप से जोड़ने के लिए लाइब्रेरी को आयात करेगा "अतिरिक्त निर्भरता "। – adelphus

+2

मूर्ख नहीं है ... इस उत्तर को लिखने के लिए धन्यवाद, मुझे इसकी आवश्यकता है। –

+0

इस पोस्ट ने मुझे भी मदद की: http://stackoverflow.com/questions/6402586/know-if-lib-is-static-or-import – meawoppl

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