PRB: LNK1120 fel får du antal olösta externa

Ansvarsfriskrivning för KB-innehåll som inte uppdateras

Den här artikeln skrevs om produkter som Microsoft inte längre erbjuder support för. Därför erbjuds denna artikel "i befintligt skick" och kommer inte att uppdateras.

Symptom

När du skapar ett program i C eller C++-program och länkaren inte kan matcha externa symboler, kan det hända att följande felmeddelande visas för LNK1120 linker:
allvarligt fel LNK1120: x olösta externa
där x är antalet externa symboler som inte kan lösa länkaren.

Lösning

Lös LNK1120 fel, använder du alternativet för följande /LIBPATH:
/LIBPATH:dir
Om dir anger en sökväg som länkaren söker innan söker den sökväg som anges i miljövariabeln LIB. Mer information finns på följande Microsoft Developer Network (MSDN)-webbplats:

Status

Detta är avsiktligt.

Mer Information

Mer information om de villkor som orsakar olösta externa symboler finns på följande MSDN-webbplats:Symboler som inte kan lösa länkaren beskrivs med felmeddelande LNK2001. LNK2001-felmeddelande kommer före LNK1120 felmeddelande. Du får felmeddelandet LNK2001 för varje olösta externa symbol.

Åtgärder för att återskapa problemet

  1. Klistra in följande kod i anteckningar och sedan spara filen:
    //The prototypes of functions fun1(), fun2() and fun3()void fun1(void);
    void fun2(void);
    void fun3(void);

    // This is the entry point for this application
    int main(void)
    {
    fun1();
    fun2();
    fun3();

    return 0;
    }
  2. Kompilera programmet med hjälp av följande:
    cl /c <filename.cpp>
    där filnamn är namnet på den fil som du skapade och sparade i steg 1.

    Anmärkning: Om du vill kompilera programmet i Microsoft Visual Studio .NET, använda Kommandotolken i Microsoft Visual Studio .NET.

    Kör vcvars32.bat från Kommandotolken om du vill kompilera programmet i Microsoft Visual Studio 6.0 och tidigare.
  3. Länka objektfilen på följande sätt:
    Link <filename.obj>
Följande linker-fel visas i Kommandotolken:
fel LNK2001: olösta externa symbolen "void __cdecl fun3(void)" (? fun3@@$$FYAXXZ)
fel LNK2001: olösta externa symbolen "void __cdecl fun2(void)" (? fun2@@$$FYAXXZ)
fel LNK2001: olösta externa symbolen "void __cdecl fun1(void)" (? fun1@@$$FYAXXZ)
allvarligt fel LNK1120: 3 olösta externa
Observera att felmeddelandet LNK1120 ger antalet olösta externa symboler som länkaren hittades.
Egenskaper

Artikel-id: 815650 – senaste granskning 24 feb. 2017 – revision: 1

Microsoft Visual Studio .NET 2003 Academic Edition, Microsoft Visual Studio .NET 2003 Enterprise Architect, Microsoft Visual Studio .NET 2003 Enterprise Developer, Microsoft Visual Studio .NET 2003 Professional Edition, Microsoft Visual Studio .NET 2003 Professional Special Edition

Feedback