Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
symbolen "symbol" som definieras i "filename_1.obj" importeras av "filename_2.obj" i funktionen "funktion"
Anmärkningar
__declspec(dllimport) angavs för en symbol trots att symbolen definieras i en objektfil i samma bild.
__declspec(dllimport) Ta bort modifieraren för att lösa den här varningen.
symbolen är det symbolnamn som definieras i bilden. funktionen är funktionen som importerar symbolen.
Den här varningen visas inte när du kompilerar med hjälp av alternativet /clr .
Example
LNK4217 kan också inträffa om du försöker länka ihop två moduler, när du i stället ska kompilera den andra modulen med importbiblioteket för den första modulen.
// main.cpp
__declspec(dllimport) void func();
int main()
{
func();
return 0;
}
Och sen,
// tt.cpp
// compile with: /c
void func() {}
Om du försöker kompilera dessa två moduler, vilket visas här, resulterar det i LNK4217:
cl.exe /c main.cpp tt.cpp
link.exe main.obj tt.obj
Åtgärda felet genom att skicka tt.obj till lib.exe för att skapa en .lib-fil efter kompileringen av de två filerna och länka sedan main.obj med tt.lib som du ser här:
cl.exe /c main.cpp tt.cpp
lib.exe tt.obj /export:func /def
link.exe main.obj tt.lib
Se även
Linker Tools Varning LNK4049
Linker Tools Varning LNK4286
dllexport, dllimport