Das Linken nicht gebacken bekommen (aka LNK2001)



  • Grundsätzlich gibt es erstmal zwei Möglichkeiten, warum das externe Symbol nicht aufgelöst werden kann. Beide haben jedoch den selben Ursprung, es wurde ein Symbol (z. B. eine Funktion, Variable oder Marke) verwiesen, das aber nicht gefunden wurde! Dabei sucht der Linker und den Objektdateien und den Bibliotheken. Daher sollte man sich als erstmal Klar werden, wo das Symbol nun hätte gefunden werden sollen. Grob gesagt: In den Objektdateien steht alles, was aus den aktuellen *.cpp Files kompiliert wird, der Rest in den Bibliotheken.

    Ist man zu dem Schluss gekommen, das Symbol hätte in den Objektdateien vorhanden sein müssen, muss also etwas an den *.cpps geändert werden. Der üblichste Grund, ist das eine Funktionsprototyp angeben und die Funktion aufgerufen wurde, aber nirgends der passende Funkzionsrumpf existiert (funktioniert natürlich ebenso mit Methoden). Eine andere Möglichkeit ist eine globale Variable. Dem Compiler wurd (mit dem Schlüsselwort) extern mitgeteilt, das die Variable "irgendwo" im restliche Code existiert, was aber wohl doch nicht der Fall war (ebenso statische Klassenvariable).

    Im zweiten Fall, wenn es sich also um ein Symbol aus einer Bibliothek handelt, wurde offensichtlich die Bibliothek nicht (bzw. nicht die richtige) gelinkt. Wer nicht weiss, wie er mit seinem Compiler und/oder IDE eine Bibliothek linkt, der sollte erstmal die zugehörige Dokumentation lesen. Und wer nicht, weiss welche Bibliothek er linken soll, der sollte auch erstmal die zugehörige Dokumentation lesen. Dort finden sich meist irgendwo der Hinweis. Hier ist kann also auch eine Stichwortsuche nützlich sein, z.b. einfach nach ".lib" (bzw. die benötigte Endung). Der letzte Ausweg ist dann einfach mal seinen Computer nach der Bibliothek mit dem Symbol zu durchsuchen. Für Windows Besitzer nochmal zum mitmeisseln: Man öffnet den Explorer, klickt auf Suchen, gibt als Datei "*.lib" und als Enthaltener Text den Namem des Symbols (am besten aus der Fehlermeldung kopieren) an. Erhält man mehrere Treffer, so kann man die ruhig alle durchprobieren.

    Dieser Beitrag erhebt keinen Anspruch auf ortographische oder fachliche Korrektheit.

    Bye, TGGC \-/



  • TGGC schrieb:

    Dieser Beitrag erhebt keinen Anspruch auf ortographische [...] Korrektheit.

    Wohl war... 🙄 :p 😉

    BTW, wegen

    TGGC schrieb:

    \-/

    und Deinem "Helden"-Logo: Fährst Du Honda?!? 😃 😕

    Ansonsten naturellement very g00t: 🤡 👍



  • anpinnen und nich ins archiv, da siehts niemand,das weis ich so genau, weil ich mich kenne(was nich heissen soll, dass ich nich ins archiv schaue 🙄)



  • Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Sgt. Nukem schrieb:

    Wohl war...

    Das war ja wohl ein Eigentor!



  • TomasRiker schrieb:

    Sgt. Nukem schrieb:

    Wohl war...

    Das war ja wohl ein Eigentor!

    Wenigstens einer schnallt es... 🤡 👍



  • Hey, ich bin der einzige Eigentor hier! Ausserdem fahr ich nicht Honda, sondern Auto.

    Bye, TGGC \-/



  • TGGC schrieb:

    Ausserdem fahr ich nicht Honda, sondern Auto.

    Also Challenger!?? 😮 😋 👍 👍 👍


Anmelden zum Antworten