2012-06-07 13 views
10

वीएस -2010 में एक परियोजना हैलो वर्ल्ड सी ++ कंसोल प्रोग्राम डिफ़ॉल्ट प्रोजेक्ट कॉन्फ़िगरेशन का उपयोग करके इंटरमीडिएट बिल्ड फ़ाइलों की 30 से अधिक फ़ाइलों को आउटपुट निर्देशिका में आउटपुट करता है। ओबीजे फ़ाइलें, पीएचसी फाइलें, जैसे, लॉग, बिल्डस्टेट, आईडीबी, एम्बेडेड मेनिफेस्ट और आरसी फाइलें और 18 से कम टॉगल फाइलें नहीं हैं।एक उचित रूप से साफ आउटपुट निर्देशिका में सी ++ प्रोजेक्ट बनाने के लिए VS2010 कॉन्फ़िगर करें?

इनमें से कोई भी वास्तव में आउटपुट नहीं है, एक्सई कंसोल ऐप के लिए केवल वास्तविक फाइलें हैं जो वास्तविक आउटपुट हैं exe खुद और पीडीबी फ़ाइल हैं।

तो मेरा सवाल यह है: क्या इस कचरे को एक मध्यवर्ती निर्देशिका में बनाने और आउटपुट निर्देशिका में उपयोगी सामग्री को आउटपुट करने के लिए VS2010 को कॉन्फ़िगर करने का कोई तरीका है?

+0

http://stackoverflow.com/questions/4970918/msvc2010-how-to-build-a-clean-output-directory –

+3

यह पहले से ही ऐसा करता है: यदि आप विजुअल स्टूडियो 2010 में एक नया सी ++ कंसोल एप्लिकेशन प्रोजेक्ट बनाते हैं और इसे बनाएं, निर्माण दो स्थानों पर आउटपुट: $ (ProjectDir) \ $ (कॉन्फ़िगरेशन), जिसमें इंटरमीडिएट बिल्ड फ़ाइलें हैं, और $ (SolutionDir) \ $ (कॉन्फ़िगरेशन), जिसमें तीन फ़ाइलें हैं: .exe, .pdb , और एक .ilk कि लिंकर को वृद्धिशील लिंकिंग की आवश्यकता होती है (यदि आप वृद्धिशील लिंकिंग अक्षम करते हैं, तो यह फ़ाइल नहीं बनाई जाएगी)। आप जो व्यवहार कर रहे हैं उससे यह व्यवहार अलग कैसे है? –

+0

यदि आपके पास समाधान के लिए एक अलग निर्देशिका नहीं है (और यदि समाधान केवल एक प्रोजेक्ट है तो आप क्यों करेंगे) इसके बजाय यह सबकुछ सीधे आउटपुट निर्देशिका में डंप करता है। उस ने कहा कि यह अभी भी दिलचस्प है कि अगर आपके पास समाधान के लिए एक अलग निर्देशिका है तो यह अधिक समझदारी से व्यवहार करता है इसलिए इसके लिए धन्यवाद। – Neutrino

उत्तर

6

विजुअल स्टूडियो में, समाधान एक्सप्लोरर खोलें, प्रोजेक्ट पर राइट-क्लिक करें और गुण चुनें ... प्रॉपर्टी पेज डायलॉग में, कॉन्फ़िगरेशन गुण -> सामान्य पर नेविगेट करें। पहले दो गुण को नियंत्रित जहां निर्माण उत्पादन जाता है:

  • आउटपुट निर्देशिका: इस निर्देशिका जिसमें अंतिम निर्माण उत्पादन (.exe, .pdb, .ilk) रखा गया है

  • इंटरमीडिएट निर्देशिका: यह वह निर्देशिका है जिसमें (अधिकतर) बाकी सब कुछ रखा गया है।

आप ठेठ परियोजना लेआउट, जहां परियोजना समाधान फ़ोल्डर के अंतर्गत एक फ़ोल्डर में है का उपयोग करते हैं, ये गुण विन्यस्त किया जाएगा ताकि दो निर्देशिका अलग हैं। आप निश्चित रूप से, जहां भी चाहें आउटपुट रखने के लिए उन्हें कॉन्फ़िगर कर सकते हैं।

+0

मैं इस तकनीक का उपयोग करता हूं, और मैं इंटरमीडिएट को '% TEMP% \ $ (समाधान नाम) \ $ (प्रोजेक्टनाम) \ $ (कॉन्फ़िगरेशन नाम)' के रूप में परिभाषित करता हूं - यह ओबीजे एट अल पूरी तरह से स्रोत पेड़ से बाहर हो जाता है। –

+0

@MikeC - अच्छी चाल है, लेकिन आपका मतलब यह नहीं है: $ (TEMP) \ $ (समाधान नाम) \ $ (ProjectName) \ $ (ConfigurationName)? – bavaza

+0

@bavaza - अगर% TEMP% काम नहीं करता है, तो हाँ, आपको सही होना चाहिए; मैं अब काम नहीं कर रहा हूं जहां मैंने इसे स्थापित किया था, और इसलिए जांच नहीं कर सकता। –

1

आप पर जा सकते हैं:

परियोजना> गुण> इवेंट का निर्माण> पहले से निर्माण घटना कमांडलाइन

परियोजना> गुण> बिल्ड इवेंट> पोस्ट-बिल्ड घटना कमांडलाइन

यहां आप अपनी सभी सफाई या कॉपी जवाब देने के लिए स्क्रिप्ट कमांडलाइन कर सकते हैं।

+0

अच्छा सुझाव है लेकिन यह सब मैन्युअल रूप से करने के लिए कठिन होगा। –

+0

मेरे खराब एन के लिए खेद है, इसे साफ करने के लिए cmd कमांड की व्याख्या करने की आवश्यकता है? –

+0

हां लेकिन फिर यह अच्छा होगा अगर निर्माण पूर्ण होने के बाद इन सभी फ़ाइलों को हटाने के लिए वीएस में एक छिपी हुई सुविधा की तरह कुछ है। –

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