HomeBlogMagic

Solving: nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj); second definition

Die Fehlermeldung kommt primär bei MFC Applikationen oder wie in diesem Fall bei DLLs.

Volständige Fehlermeldung:

nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj); second definition ignored
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj); second definition ignored
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj); second definition ignored
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in LIBCMTD.lib(new2.obj); second definition ignored
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) already defined in LIBCMTD.lib(delete2.obj); second definition ignored

Dieser Fehler entsteht durch einen Konflikt aus der C Runtime und der MFC Runtime.

Um die MFC Runtime in diesem fall zu bevorzugen ist es notwendig die MCF Bibliotheken zuerst zu linken. Dass kann geschehen indem man die Bibliothek manuell angibt.

Füge folgendes zu den Linker Bibliotheken hinzu: (Project Properties->Configuration Properties->Linker->Input->Additional Dependencies)

nafxcwd.lib;