2009-05-29 15 views
6

यहां मेरा परिदृश्य है। मेरे पास एक परियोजना है जिसमें 30 उपप्रोजेक्ट हैं। परियोजनाओं में से एक में मैंने सीएलआर (सामान्य भाषा रनटाइम) का उपयोग किया है, इसलिए मैंने अपने रनटाइम को/mdd (बहु थ्रेडेड डीबग डीएलएल) के साथ संशोधित किया है।विजुअल स्टूडियो में निम्न लिंकर त्रुटियों को कैसे हल करें?

व्यक्तिगत रूप से सभी परियोजनाएं सफलतापूर्वक बनाई गई हैं।

LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library 


LIBCMTD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj) 
LIBCMTD.lib(fclose.obj) : error LNK2005: _fclose already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(printf.obj) : error LNK2005: _printf already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(mbstowcs.obj) : error LNK2005: _mbstowcs already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(wcstombs.obj) : error LNK2005: _wcstombs already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(tzset.obj) : error LNK2005: __tzset already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(stricmp.obj) : error LNK2005: __stricmp already defined in MSVCRTD.lib(MSVCR80D.dll) 

इन सभी समाधान कैसे करें: लेकिन मैं निम्नलिखित लिंकर त्रुटियों हो रही है जब मैं मुख्य परियोजना संकलन करने की कोशिश?

उत्तर

8

ऐसा लगता है कि आपकी कुछ परियोजनाएं स्थिर रनटाइम लाइब्रेरी का उपयोग करती हैं। (और आपने अपनी परियोजनाओं में से किसी एक के लिए गतिशील चुना है) यह संयोजन असमर्थित है।

मुझे याद दिलाता है की: Linker errors between multiple projects in Visual C++

22

LIBCMTD स्थिर मल्टी-थ्रेडेड सी क्रम पुस्तकालय की डिबग संस्करण है। MSVCR80D DLL- आधारित बहु-थ्रेडेड सी रनटाइम लाइब्रेरी का एक डीबग संस्करण है। आपकी कुछ उप-परियोजनाएं एक के लिए बुला रही हैं, कुछ अन्य। यह एक माइक्रोसॉफ्ट गड़बड़ है, लेकिन आपको इससे निपटना होगा। एक, मल्टी-थ्रेडेड डीबग डीएलएल चुनें, और इसे अपने प्रोजेक्ट के डीबग संस्करण और सभी उप-परियोजनाओं के लिए विशेष रूप से उपयोग करें। माइक्रोसॉफ्ट लाइसेंस (मुझे बताया गया है) की आवश्यकता है कि आप रिलीज सॉफ्टवेयर के लिए एक गैर-डीबग संस्करण का उपयोग करें। CLICK.

Screenshot

+2

पी.एस.:

अधिक जानकारी के लिए निम्न देखें जब आप सी रनटाइम (सीआरटी) के एक संस्करण में सबकुछ परिवर्तित करते हैं, तो प्रत्येक प्रोजेक्ट पर एक परियोजना "साफ" और "पुनर्निर्माण" करें। –

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