2011-03-21 13 views
8

में उपयोग किए गए सीआरटी की पुष्टि करना मैं कैसे देख सकता हूं कि विंडोज़ में एक स्थिर लाइब्रेरी (.lib) किस रनटाइम लाइब्रेरी से जुड़ा हुआ है?लाइब्रेरी (.lib)

मैं/MDD के साथ अपने प्रोजेक्ट संकलन कर रहा हूँ और मैं एक पुस्तकालय मैं उपयोग कर रहा है को जोड़ने कर रहा हूँ/MTD थ्रेड डीबग

Error 7 error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" ([email protected]@@[email protected]) already defined in libcpmtd.lib(xlock.obj) C:\...\msvcprtd.lib(MSVCP100D.dll) 

LIBCPMTD.LIB = थ्रेड, स्थिर लिंक अनुमान

मुझे पता है कि एक विकल्प /NODEFAULTLIB:"libcpmtd.lib" है जिसकी मैंने कोशिश की और सफल रहा, लेकिन मैं इसके बजाय उससे बचूंगा।

उत्तर

5

मैं यह कर रहा निम्नलिखित

> dumpbin /DIRECTIVES C:\..\ThirdParty\tidy\windows\lib\libtidy 
.lib 
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01 
Copyright (C) Microsoft Corporation. All rights reserved. 


Dump of file C:\..\ThirdParty\tidy\windows\lib\libtidy.lib 

File Type: LIBRARY 

    Linker Directives 
    ----------------- 
    /DEFAULTLIB:"LIBCMT" 
    /DEFAULTLIB:"OLDNAMES" 
... 

यह मीट्रिक टन करने के लिए Cleary जोड़ने है ठीक करने के लिए कर रहा था। मैंने lib/mdd का उपयोग करके lib को पुनः संकलित किया और यह जुड़ा जुड़ा हुआ है।

0
CRT की MSVPRTD.LIB is the importlib of the dynamic link library के बाद से

, जब आप स्पष्ट रूप CRT स्थिर से लिंक करने के लिए कहा, कुछ अपने निर्माण श्रृंखला के साथ कुछ गलत लगता है।

आप विरोधाभासों के लिए प्रोजेक्ट फ़ाइल को दृष्टि से जांचना चाह सकते हैं।

+0

जिस परियोजना को मैं संकलित करने की कोशिश कर रहा हूं वह/MDd का उपयोग कर रहा है जो सही सेटिंग है। मैं जो कुछ जोड़ने का प्रयास कर रहा हूं वह/एमटी (डी) स्थिर या क्या नहीं है। विजुअल स्टूडियो 2010 कैसे पता लगाता है कि किस लाइब्रेरी से मैं लिंक करता हूं वह एक विरोधाभासी सीआरटी है? क्या सभी प्रोजेक्ट फ़ाइलों का मैन्युअल रूप से निरीक्षण करने का कोई विकल्प नहीं है? –