Dela via


Varning LNK4098 för verktyg för länkning

defaultlib "library" står i konflikt med användningen av andra libs; använda /NODEFAULTLIB:library

Anmärkningar

Du försöker länka till inkompatibla bibliotek.

Anmärkning

Körningsbiblioteken innehåller nu direktiv för att förhindra blandning av olika datatyper. Du får den här varningen om du försöker använda olika typer av eller felsöknings- och icke-felsökningsversioner av körningsbibliotek i samma program. Om du till exempel kompilerade en fil för att använda en typ av körningsbibliotek och en annan fil för att använda en annan typ (till exempel felsökning kontra detaljhandel) och försökte länka dem får du den här varningen. Du bör kompilera alla källfiler så att de använder samma runtime-bibliotek. Mer information finns i kompileringsalternativen /MD, /MT, /LD (Use Run-Time Library).

Du kan använda länkarens /VERBOSE:LIB-växel för att ta reda på vilka bibliotek länkaren söker i. När din körbara fil till exempel använder körtidsbiblioteken med flera trådar, som inte kan felsökas, bör listan som rapporteras innehålla LIBCMT.lib och inte LIBCMTD.lib, MSVCRT.lib eller MSVCRTD.lib. Du kan instruera länkaren att ignorera felaktiga körbibliotek med hjälp av /NODEFAULTLIB för varje bibliotek som du vill ignorera.

Tabellen nedan visar vilka bibliotek som ska ignoreras beroende på vilket körningsbibliotek du vill använda. På kommandoraden använder du ett /NODEFAULTLIB-alternativ för varje bibliotek att ignorera. I Visual Studio IDE separerar du biblioteken för att ignorera med semikolon i egenskapen Ignorera specifika standardbibliotek .

Så här använder du det här körningsbiblioteket Ignorera dessa bibliotek
Flertrådad (libcmt.lib) msvcrt.lib; libcmtd.lib; msvcrtd.lib
Flertrådad med DLL (msvcrt.lib) libcmt.lib; libcmtd.lib; msvcrtd.lib
Felsöka flertrådat (libcmtd.lib) libcmt.lib; msvcrt.lib; msvcrtd.lib
Felsöka Multithreaded med DLL (msvcrtd.lib) libcmt.lib; msvcrt.lib; libcmtd.lib

Om du till exempel har fått den här varningen och vill skapa en körbar fil som använder den icke-felsökningsversionen av DLL-körningsbiblioteken, kan du använda följande alternativ med länkverktyget:

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