Troubleshooting

Aus Lowlevel
Wechseln zu:Navigation,

In diesem Artikel sollen möglichst viele der – für die Betriebssystemprogrammierung oder für bestimmte Wikiartikel relevanten – Fehlermeldungen des Compilers/Linkers erklärt werden und ein Weg zum Beheben der Fehler aufgezeigt werden. Es sollen hier allerdings keine Probleme zur Sprache kommen, die sich durch einen Blick in „<Programmiersprache> für Dummies“ lösen lassen.

undefined reference to `funktionsname'

Diese Fehlermeldung wird vom Linker ausgegeben, wenn er kein Symbol mit dem Namen funktionsname findet. Dies kann vorkommen, wenn

  • du vergessen hast die Objektdatei mit der Definition der Funktion funktionsname zu kompilieren und mit zu linken
  • du vergessen hast in der Sourcecodedatei diese Funktion zu definieren
  • du aus Versehen die Funktion als static deklariert hast
  • du C++ verwendest und funktionsname in einer C++-Quellcodedatei definiert und von einer C/Assembler-Quellcodedatei verwendet wird, eine Lösung findet sich hier
  • du Archive (.a-Dateien) verwendest und die Reihenfolge der Kommandozeilenparameter von ld nicht richtig ist oder du vergessen hast --start-group und --end-group anzugeben, siehe hierfür auch das ld-Manual

Falls nichts davon zutrifft, könntest du die Objektdatei, die die deiner Meinung nach entsprechende Funktion enthalten soll, disassemblieren und schauen, ob ein entsprechender Symbolname auftaucht.

C++-spezifisch

expected primary-expression before ‘.’ token

→ Hauptartikel: C++: designated initializers