मैं एक परियोजना में एक नया करने के लिए मुझे लिंकर त्रुटि के साथ मैं काम कर रहा हूँ हो रही है:LNK2022 मेटाडाटा आपरेशन: डुप्लिकेट प्रकार में असंगत लेआउट जानकारी
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std.basic_string<char,std::char_traits<char>,std::allocator<char> >): (0x0200004e).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std.basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >): (0x02000075).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000091).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_const_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000092).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_val<char,std::allocator<char> >): (0x02000097).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (std._String_val<wchar_t,std::allocator<wchar_t> >): (0x02000099).
हम Windows में दृश्य स्टूडियो 2010 का उपयोग कर रहे 7.
यह प्रोजेक्ट संकलित करने के लिए उपयोग किया जाता है। यह कुछ अप्रबंधित कोड के आसपास एक सी ++/सीएलआई डीएलएल रैपर है, और इस प्रकार आम भाषा रनटाइम समर्थन शामिल है। में की बात यह है कि एक बाहरी स्थैतिक लाइब्रेरी जिसे हमने लिंक किया था "अद्यतन" था। जब हम उस परियोजना को संकलित करने का प्रयास करते हैं तो हम अब यह त्रुटि प्राप्त कर रहे हैं।
माइक्रोसॉफ्ट के इस समस्या के लिए "सहायता" "चलाने ILDASM -tokens वस्तु फ़ाइलों पर लगाने के लिए जो प्रकार ERROR_MESSAGE में सूचीबद्ध टोकन है, और मतभेद के लिए देखो" है। फिर मैंने this page चेक किया और देखा कि /tokens
विकल्प केवल .exe और .dll फ़ाइलों के लिए मान्य है ... लेकिन यह एक लिंकर त्रुटि है, इसलिए मेरी .dll फ़ाइल अभी तक नहीं बनाई गई है!
मैं ildasm -tokens AssemblyInfo.obj
तरह बातें चल की कोशिश की है, लेकिन केवल बात यह है कि ऐसा होता है कि एक खिड़की इस अविश्वसनीय रूप से उपयोगी त्रुटि संदेश के साथ खुल जाता है:
धन्यवाद माइक्रोसॉफ्ट!
मुझे सच में यकीन नहीं है कि इस समस्या का निवारण कैसे जारी रखें। एक रिलीज बिल्ड ठीक तरह से काम करता है - यह केवल डीबग है जो गड़बड़ है। तो मिश्रण में कहीं मुझे लगता है कि std::string
प्रकार एक अलग आकार या कुछ है ...
कोई विचार?
मैं कभी कभी जब मैं एक हेडर फाइल को बदलने के इस त्रुटि मिलती है, और संकलक सभी कोड फ़ाइलों को पुन: संकलित नहीं करता है। आप शायद पहले से ही यह कर चुके हैं, लेकिन एक स्वच्छ और पूर्ण पुनर्निर्माण मदद कर सकता है। –
@ डेविड यॉ सिफारिश के लिए धन्यवाद - मैं बिना किसी सफलता के पूर्ण पुनर्निर्माण कर रहा हूं। मुझे लगता है कि मैं यहां कुछ के निशान पर हूं ... – aardvarkk