Hallo, Ich arbeite mit der System Workbench for STM32 (basierend auf Eclipse). Ich habe in einem neuen Projekt eine neue Funktion implementiert und getestet. Danach habe ich alles wichtige aus dem neuen Projekt in mein Hauptprojekt geladen um es dort zu verwenden. Beim builden kommt aber jetzt die Fehlermeldung "undefined reference to ...". Wenn ich die betreffenden Funktionen anklicke und auf "Open Declaration" klicke öffnet sich die richtige Datei an der richtige Stelle.
Und wirklich keines der 16 Millionen Google-Ergebnisse zu diesem Problem hat dir geholfen? Auch nicht die unzähligen Beiträge im hiesigen Forum? Man muss nicht bei jedem einzelnen Auftreten eines extrem häufigen Standard-Problems im Forum nachfragen, und darf durchaus selbst recherchieren.
rowtag schrieb: > Wenn ich die betreffenden Funktionen anklicke und auf "Open Declaration" > klicke öffnet sich die richtige Datei an der richtige Stelle. Da fehlt auch nicht die Deklaration (wäre eine andere Fehlermeldung), sondern die kompilierte Definition. Die Fehlermeldung kommt vom Linker.
Schwer zu glauben. So ziemlich jeder C Programmierer stolpert da einmal pro Woche drüber. Das Thema wurde schon Tausend Mal tot diskutiert. Da müsste sich irgendwo ein Hinweis finden lassen.
rowtag schrieb: > Danach habe ich alles wichtige aus dem neuen Projekt in mein > Hauptprojekt geladen um es dort zu verwenden. Dann solltest du auch mal alles nach deiner Ansicht unwichtige in dein Hauptprojekt laden. Denn irgend etwas scheint ja zu fehlen. Oliver
Alle Lösungsvorschläge die ich bis jetzt probiert habe, blieben erfolglos. Ich hatte das Problem ja auch schon öfters, aber da hat es dann auch geklappt mit den Tipps aus dem Internet.
Oliver S. schrieb: > Dann solltest du auch mal alles nach deiner Ansicht unwichtige in dein > Hauptprojekt laden. Denn irgend etwas scheint ja zu fehlen. Das Hauptprojekt enthält alle C und H Dateien aus dem Neuen Projekt. Ich musste nur Code aus der main.c kopieren
Fand doch mal damit an herauszufinden, was "undefined reference to" bedeutet und unter was für Umständen es auftritt. Dann kannst du rückwärts schlussfolgern was bei dir die Ursache ist. Einfach irgendwelche "Lösungen" auszuprobieren klappt selten.
Eclipse unterscheidet Source-Dateien von anderen, und Source-Ordner von anderen. Ein klassischer Fehler, den man mit Eclipse machen kann, ist, Source-Dateien nicht als solche anzulegen bzw. die in Nicht-Source-Ordnern zu haben. Dann kompiliert Eclipse die nicht mit. Oliver
"undefined reference to" heißt das das Programm nicht weiß wo die Funktion steht, richtig? wie sag ich ihm den wo es steht?
rowtag schrieb: > "undefined reference to" heißt das das Programm nicht weiß wo die > Funktion steht, richtig? Nein. Es besagt, dass in keiner der gelinkten .o Dateien und Bibliotheken die fragliche Funktion oder Variable definiert ist. Da die .o Dateien aus deinen .c Dateien kommen, bedeutet dass dass in keiner der .c Dateien die Funktion definiert ist. Es fehlt also die Definition ganz, oder die fragliche .c Datei wird nicht kompiliert, oder die daraus entstehende .o Datei wird nicht mit gelinkt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.