2011-01-05 16 views
25

में डीबग/रिलीज config के अनुसार मैं इस तरह मेरे कार्यक्रम में डिबग आउटपुट की है। जब मैं रिलीज संस्करण करता हूं तो मैं हमेशा लाइन पर टिप्पणी करता हूं। विजुअल स्टूडियो 2010 में, डीबग बनाम रिलीज संस्करणों को संकलित करने के लिए उपयोग की गई कमांडलाइन आदि को नियंत्रित करने वाले संस्करणों के लिए "कॉन्फ़िगरेशन" भी हैं। क्या मैं संकलक को स्वचालित रूप से DEBUG को परिभाषित करने के लिए कॉन्फ़िगरेशन "डीबग" का भी उपयोग कर सकता हूं? कैसे?स्वचालित #defines विजुअल स्टूडियो 2010

उत्तर

58

विजुअल स्टूडियो स्वचालित रूप से डीबग बिल्ड (और गैर-डीबग बिल्ड के लिए एनडीईबीयूजी) के लिए _DEBUG प्रतीक को परिभाषित करता है।

ऐसा करने का एक और तरीका प्रोजेक्ट सेटिंग्स -> कॉन्फ़िगरेशन गुण -> सी/सी ++ -> प्रीप्रोसेसर पर जाना है, और प्रीप्रोसेसर परिभाषाओं को मैन्युअल रूप से संपादित करना है।

यह भी देखें:
This answer अधिक जानकारी में _DEBUG और NDEBUG के बीच अंतर बताता है।
This answer एनडीईबीयूजी प्रतीक के उद्देश्य को बताता है और यह मानक द्वारा परिभाषित किया गया है या नहीं।

+6

संयोग से, एनडीईबीयूजी पोर्टेबल समाधान है। यह दुर्भाग्यपूर्ण है कि DEBUG के निर्माण के लिए कोई मानक प्रतीक मौजूद नहीं है। –

+0

हाय, आप कैसे सुनिश्चित कर सकते हैं कि बनाम उन मैक्रोज़ को परिभाषित करता है? एमएसडीएन पर यह सिर्फ _DEBUG का उल्लेख है, एनडीईबीयूजी नहीं, मैं आपके लिए सभी मैक्रोज़ वीएस के साथ एक सूची कहां देख सकता हूं? – Icebone1000

+0

@ आइसबोन 1000: मैंने एक उत्तर में एक लिंक जोड़ा है जो बताता है कि एनडीईबीयूजी मानक प्रतीक है या नहीं और इसे पोर्टेबल क्यों माना जाएगा। वीएस में [पूर्वनिर्धारित मैक्रोज़ की सूची] देखें (http://msdn.microsoft.com/en-us/library/b0084kay (v = vs.110) .aspx)। –

8

_DEBUG का उपयोग करें। Visual C++ इसे डीबग कॉन्फ़िगरेशन के लिए परिभाषित करता है। अपने प्रोजेक्ट के गुण संवाद में डीबग कॉन्फ़िगरेशन के लिए प्रीप्रोसेसर निर्देश देखें।

0

हां, आपको प्रोजेक्ट विकल्प पृष्ठ, संकलन-> उन्नत संकलन विकल्प जांचना चाहिए। हालांकि, डिफ़ॉल्ट रूप से वीएस स्वचालित रूप से डीबग मोड के लिए डीईबीयूजी निर्देश को परिभाषित करता है।

+1

मेरा मानना ​​है कि यह '_DEBUG 'निर्देश है। अंडरस्कोर नोट करें। –

3

मैंने भी सोचा कि मुझे बस प्रीप्रोसेसर संपत्ति को देखना है और _DEBUG को हटा देना है। यदि आप डीबग रन-टाइम लाइब्रेरी विकल्पों में से किसी एक को चुनते हैं तो विजुअल स्टूडियो _DEBUG सेट करके मदद करने की कोशिश करता है।

परियोजना संपत्ति पेज विन्यास गुण \ C/C++ \ कोड जनरेशन विकल्प के लिए रनटाइम लाइब्रेरी कई परिभाषित करता है को प्रभावित करता है चयनित पर। जब एक डिबग पुस्तकालय (/MTD या /MDD) _DEBUG का चयन परिभाषित सेट है।

स्विच पर अधिक जानकारी के लिए MSDN /MD, /MT ... देखें। इन विकल्पों के आधार पर सेट की गई कई # डिफाइन हैं। जब आप किसी भी शीर्षलेख फ़ाइलों को शामिल करने से पहले # परिभाषित करते हैं तो यह पता लगाने की कोशिश करते समय वे बहुत अदृश्य हैं !!

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