2011-04-20 12 views
16

हम एक अन्य विक्रेता द्वारा लाइब्रेरी का उपयोग कर रहे हैं, जो स्पष्ट रूप से 32 बिट-डीबग-मोड में गलत झंडे के साथ संकलित किया गया था, अर्थात _ITERATOR_DEBUG_LEVEL = 0। जबकि मैंने पहले से ही एक बग रिपोर्ट दायर की है, मुझे एक मध्यवर्ती समाधान की आवश्यकता है। हम खुद को stl का उपयोग नहीं करते हैं, इसलिए मैं इस ध्वज को उपप्रोजेक्ट के लिए बदलने के लिए स्वतंत्र हूं जो लाइब्रेरी का उपयोग करता है। लेकिन मैं यह नहीं समझ सकता कि ऐसा कैसे करें। क्या मैं एक करने की कोशिश की काम नहीं किया:वीएस -2010 में _ITERATOR_DEBUG_LEVEL कैसे सेट करें?

/D_ITERATOR_DEBUG_LEVEL=0 
> LINK : warning LNK4044: unrecognized option '/D_ITERATOR_DEBUG_LEVEL=0'; ignored 

#define _ITERATOR_DEBUG_LEVEL 0 
> Nothing happens 

उचित सिंटैक्स या विकल्प चेक किया iterators बिना संकलित करने के लिए परियोजना को पाने के लिए क्या है?

+2

/डी एक है कंपाइलर के लिए विकल्प और आपने इसे लिंकर –

उत्तर

27

समाधान मिला।

प्रोजेक्ट पेज/कॉन्फ़िगरेशन गुण/सी, सी ++/प्रीप्रोसेसर/प्रीप्रोसेसर परिभाषाएं।

वहां "_ITERATOR_DEBUG_LEVEL = 0" जोड़ें।

+0

पर दिया है मैंने अभी ऊपर सुझाव दिया है। मेरे पास 2 परियोजनाएं हैं, एक दूसरे से जुड़ी स्थिर पुस्तकालय है। प्रत्येक 2008 एक्सप्रेस प्रोजेक्ट के रूप में शुरू हुआ। पुस्तकालय पूरी तरह से स्वचालित रूप से 2010 एक्सप्रेस में परिवर्तित हो गया, दूसरा एक नई 2010 परियोजना में मौजूदा फाइलों के रूप में डाला गया था। 2010 एक्सप्रेस का उपयोग करके बाद वाली परियोजना को डीबग के तहत बनाने के लिए मुझे विभिन्न कॉन्फ़िगरेशन और कोड परिवर्तन करना पड़ा। मैंने exe और static लाइब्रेरी दोनों के लिए रिलीज के तहत प्रीप्रोसेसर मैक्रोज़ में _ITERATOR_DEBUG_LEVEL = 0 जोड़ा है। इससे कोई फर्क नहीं पड़ता। –

+0

उपयोगकर्ता 22636958 की टिप्पणी पर स्पष्ट करने के लिए, त्रुटि संदेश जिस तरह से पढ़ता है, यह मुझे लगता है कि मुझे '_ITERATOR_DEBUG_LEVEL' जोड़कर गलत प्रोजेक्ट को बदलना है। मैंने दूसरे को बदल दिया और यह मेरे लिए काम किया। :-) – kmort

3

बस के रूप में अतिरिक्त जानकारी: परियोजना पृष्ठ/विन्यास गुण/सी, सी ++/प्रीप्रोसेसर/प्रीप्रोसेसर परिभाषाएँ और लक्ष्य के आधार पर निम्न में से एक के लिए पूर्वप्रक्रमक मैक्रो _ITERATOR_DEBUG_LEVEL सेट:

_ITERATOR_DEBUG_LEVEL = 0 // disabled (for release builds) 
_ITERATOR_DEBUG_LEVEL = 1 // enabled (if _SECURE_SCL is defined) 
_ITERATOR_DEBUG_LEVEL = 2 // enabled (for debug builds)