2011-11-12 5 views
11

मैं किसी अन्य प्रोजेक्ट के साथ एक प्रोजेक्ट बनाने की कोशिश कर रहा हूं। वहां बहुत सारी libs हैं और मुझे यकीन नहीं है कि आवश्यक अवर्गीकृत प्रतीक मौजूद हैं।दृश्य स्टूडियो में फ़ोल्डर में सभी .libs को कैसे शामिल करें

क्या कोई तरीका है जिसमें संकलन करते समय मैं सभी .lib फ़ाइलों को शामिल कर सकता हूं?

मैंने लिंकर को अतिरिक्त इनपुट के रूप में lib निर्देशिका दी है, फिर भी यह व्यक्तिगत .lib फ़ाइलों को शामिल करने के लिए कहता है। क्या इस फ़ोल्डर में सभी .lib एस शामिल करने का कोई विकल्प है?

उत्तर

3

AFAIK वहाँ ऐसा करने के लिए कोई रास्ता नहीं है: अपने विकल्पों को

  • linker-> इनपुट-> अतिरिक्त निर्भरता

  • स्रोत में pragma directive के माध्यम से libs शामिल में प्रत्येक lib शामिल हैं फ़ाइल यानी

pragma टिप्पणी (लिब, "some_lib.lib") जोड़

  • अगर परियोजनाओं समाधान का हिस्सा हैं, तो आप सबसे आसान तरीका है यह करने के लिए के रूप में "परियोजना निर्भरता"

उनका चयन कर सकते हैं pragma उपयोग करने के लिए जब से तुम केवल एक बार क्या करना है है डीबग और रिलीज दोनों के लिए। उदाहरण के लिए, आप अपनी lib निर्देशिका की निर्देशिका सूची कर सकते हैं और फिर निर्देश के शेष को अपनी स्रोत फ़ाइल में कॉपी और पेस्ट कर सकते हैं।

आगे, एक स्थिर पुस्तकालय की प्रतीक सूची प्राप्त करने के लिए, आप lib फ़ाइलों पर डंपबिन टूल चला सकते हैं (AFAIR/ALL विकल्प के साथ)।

+0

क्या विजुअल स्टूडियो के हाल के संस्करणों में कोई बदलाव आया है?इसके अलावा, फ़ोल्डर को स्कैन करने के लिए प्री-बिल्ड स्क्रिप्ट लिखना संभव नहीं है? – danijar

+0

मैं वीएस2015 का उपयोग कर रहा हूं, और मैं लिंकर-> इनपुट-> अतिरिक्त निर्भरता में जा सकता हूं और [फ़ोल्डर] \ *। Lib जोड़ सकता हूं और यह आज मेरे लिए काम कर रहा है। – RomSteady

0

यह एक फ़ाइल आउटपुट करेगा सभी .lib फ़ाइलों को सूचीबद्ध किया जाएगा। आप इसे कॉपी और पेस्ट कर सकते हैं या अपनी आवश्यकताओं के अनुसार इसे संशोधित कर सकते हैं।

बैच के रूप में सहेजें।

for %%f in (*.lib) DO echo|set /p=%%~f >> alllibs.txt 
2

तुम सिर्फ लिखने के लिए सक्षम होना चाहिए "somefolder/*। Lib" जहां

11

bigD के जवाब के खिलाफ लिंक करने के लिए पुस्तकालयों में बताने की सही है।

गुण> विन्यास गुण> लिंकर> कमांड लाइन> अतिरिक्त विकल्प

:

जगह आप वास्तव में यह करना होगा, वी.एस. 2012 में कम से कम, इस परियोजना पर राइट क्लिक करें, फिर जाकर है

कि बॉक्स में, तुम सिर्फ टाइप करेंगे:

"[libFolder]\*.lib" 

आप एक रिक्ति से स्थानों को अलग करके कई स्थानों हो सकता है, जैसे:

"[libFolder1]\*.lib" "[libFolder2]\*.lib" 
+0

यह उन सभी को अलग-अलग जोड़ने से बहुत आसान था। निश्चित नहीं है कि अगर मैं उन libs को शामिल करता हूं जिन्हें मुझे आवश्यकता नहीं है। चारों ओर हैकिंग करते समय मुझे कुछ समय बचाने के लिए +1। –

+0

आप किसी भी लाइब्रेरी को प्राप्त करने के लिए लाइन में UNUSEDLIBS भी जोड़ सकते हैं जो उपयोग नहीं किया गया है। –