Delen via


Waarschuwing LNK4098 Linker Tools

standaardbibliotheek 'library' conflicteert met gebruik van andere bibliotheken; gebruik /NODEFAULTLIB:library

Opmerkingen

U probeert een koppeling te maken met incompatibele bibliotheken.

Opmerking

De runtimebibliotheken bevatten nu instructies om te voorkomen dat verschillende typen worden gemengd. U ontvangt deze waarschuwing als u verschillende typen of foutopsporings- en niet-foutopsporingsversies van de runtimebibliotheek in hetzelfde programma probeert te gebruiken. Als u bijvoorbeeld één bestand hebt gecompileerd om één soort runtimebibliotheek en een ander bestand te gebruiken om een ander soort te gebruiken (bijvoorbeeld foutopsporing versus detailhandel) en deze probeert te koppelen, krijgt u deze waarschuwing. U moet alle bronbestanden compileren om dezelfde runtimebibliotheek te gebruiken. Zie de compileropties /MD, /MT, /LD (Use Run-Time Library) voor meer informatie.

U kunt de schakeloptie /VERBOSE:LIB van de linker gebruiken om erachter te komen welke bibliotheken de linker doorzoekt. Als uw uitvoerbare bestand bijvoorbeeld gebruikmaakt van multi-threaded runtimebibliotheken zonder foutopsporing, moet de gerapporteerde lijst LIBCMT.lib bevatten, en niet LIBCMTD.lib, MSVCRT.lib of MSVCRTD.lib. U kunt de linker laten weten dat de onjuiste runtime-bibliotheken moeten worden genegeerd met behulp van /NODEFAULTLIB voor elke bibliotheek die u wilt negeren.

In de onderstaande tabel ziet u welke bibliotheken moeten worden genegeerd, afhankelijk van welke runtimebibliotheek u wilt gebruiken. Gebruik op de opdrachtregel één /NODEFAULTLIB-optie om elke bibliotheek te negeren. In de Visual Studio IDE scheidt u de bibliotheken die moeten worden genegeerd door puntkomma's in de eigenschap Specifieke standaardbibliotheken negeren .

Om deze runtimebibliotheek te gebruiken Deze bibliotheken negeren
Multithreaded (libcmt.lib) msvcrt.lib; libcmtd.lib; msvcrtd.lib
Multithreaded met gebruik van DLL (msvcrt.lib) libcmt.lib; libcmtd.lib; msvcrtd.lib
Fouten opsporen in multithreaded (libcmtd.lib) libcmt.lib; msvcrt.lib; msvcrtd.lib
Fouten opsporen in Multithreaded met behulp van DLL (msvcrtd.lib) libcmt.lib; msvcrt.lib; libcmtd.lib

Als u bijvoorbeeld deze waarschuwing hebt ontvangen en u een uitvoerbaar bestand wilt maken dat gebruikmaakt van de niet-foutopsporings-, DLL-versie van de runtimebibliotheken, kunt u de volgende opties gebruiken met de linker:

/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib