Link error trotz obj



  • Hallo

    ich habe VS2010 und bekomme

    error LNK2001: unresolved external symbol ...

    für funktionen aus ein und der selben cpp datei.
    die ganze zeit hat es funktioniert und nun nicht mehr.
    was tun? die obj datei ist vorhanden.



  • Es handelt sich nicht um fehlende libs die gelinkt werden müssen.

    Ich habe in einem projekt einfach mehrere header inklusive der cpp dateien.
    Alle lassen sich öffnen editieren. Die Funktionen sind vorhanden.



  • Die komplette Fehlermeldung wäre schon nicht schlecht.
    Ich würde trotzdem sagen dass da irgendwelche Libs fehlen.
    Eventuell ein kleines bisschen Quellcode wär auch nicht schlecht.
    Zumindest der Teil auf den sich die Fehlermeldung bezieht.
    Schreibst du ne Win32 Anwendung oder was genau soll das sein?



  • linker_ schrieb:

    Hallo

    ich habe VS2010 und bekomme

    error LNK2001: unresolved external symbol ...

    für funktionen aus ein und der selben cpp datei.
    die ganze zeit hat es funktioniert und nun nicht mehr.
    was tun? die obj datei ist vorhanden.

    -Schreibfehler?
    -Falsche Parameter?
    -Template-Implementationen in C++-Datei ausgelagert?



  • Danke habs gelöst.

    Ich habe alle kleinen Funktionen in der cpp Datei auf inline gesetzt gehabt, dadurch hat der Compiler zuviel optimiert als nötig war.



  • linker_ schrieb:

    Danke habs gelöst.

    Ich habe alle kleinen Funktionen in der cpp Datei auf inline gesetzt gehabt, dadurch hat der Compiler zuviel optimiert als nötig war.

    "zuviel optimiert als nötig war" ist hier falsch. Der Compiler hat die ganzen Funktionen in der selben Datei geinlined, dadurch gab es gar keine richtige Funktion mehr, die wirklich aufgerufen werden kann. Dadurch, dass du deine Funktionen aber auch noch aus anderen Dateien aufgerufen hast, gab es einen Fehler.


  • Mod

    linker_ schrieb:

    Danke habs gelöst.

    Ich habe alle kleinen Funktionen in der cpp Datei auf inline gesetzt gehabt, dadurch hat der Compiler zuviel optimiert als nötig war.

    Inline impliziert static. Dein Fehler, nicht der des Compilers.


Anmelden zum Antworten