İşte Benim senaryo'm. 30 alt proje içeren bir projem var. Projelerden birinde CLR (ortak dil çalışma zamanı) kullandım, böylece çalışma zamanını/mdd (multi-threaded debug DLL) ile değiştirdim.Visual Studio'da aşağıdaki linker hataları nasıl giderilir?
Tek tek tüm projeler başarıyla oluşturulmuştur.
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)
Nasıl bunların hepsi çözmek için: Ben ana proje derlemeye çalıştığınızda Ama şu bağlayıcı hataları alıyorum?
Dip not:
fazla bilgi için aşağıya bakın Her şeyi C çalışma zamanının (CRT) tek bir sürümüne dönüştürdüğünüzde, her projede ayrı olarak "temizle" ve "yeniden oluştur" projelerini gerçekleştirin. –