www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik undefined reference


Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

bin ziemlich am verzweifeln im Moment, ich hoffe mir kann jemand bei dem 
folgenden Problem helfen.
Und zwar habe ich mir ein Beispiel Projekt runtergeladen zu einem 
Nanoloc-board. Danach hab ich mir ein neues Projekt in AVR_Studio 
angelegt, alle *.h Dateien eingbunden. Leider bekomme ich jetzt sehr 
viele Fehlermeldungen bezüglich undefined reference von Funktionen.

(main.o(.text+0x42):../main.c:90: undefined reference to `console_init')

Jedoch kann ich nicht verstehen warum er die nicht findet, das müsste 
alles passen.
Ich hab jetzt schon gelesen, dass das mit dem makefile zusammen hängt. 
Leider hab ich kein "original" makefile, jedoch sollte nach meinem 
Verständnis das doch automatisch bei AVR_Studio gebildet werden. Kann 
ich da irgendwelche Pfade noch "zu Fuß" einfügen?

main.o(.text+0x42):../main.c:90: undefined reference to `console_init'

Wär wirklich sehr nett, wenn mir einer helfen könnte. Das Problem haben 
bestimmt schon mehrere gehabt.

Danke

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu den meisten nicht systemeigenen Headerdateien gehört auch eine 
(gleichnamige) .c-Datei, die dem Makefile hinzugefügt werden muss!

Das Makefile macht AVRStudio zwar automatisch, aber die Einstellungen 
musst Du selber vornehmen. Dazu gehört auch, dass alle Quelldateien 
dem Projekt hinzugefügt werden müssen (über den Punkt "Source Files" im 
"Projektbaum").

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

macht AVR-Studio mit GCC eigentlich automatisch, wenn man sowohl die .h 
als auch die .c Dateien dem Projekt hinzugefügt hat.

PS. ich war zu langsam... ;-(
Gruß aus Berlin
Michael

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, mit dem Einbinden der *.c - Files hat es geklappt!
Jetzt nur noch die anderen Fehler beseitigen:-)

Autor: Tommy Tacker (tommy776)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo.
ich stehe auch grad vor einem "undefined reference" problem:
(ich nutze das AVR-Studio 4.13 und WinAVR)
...
void appEndDeviceTaskHandler(void)
{
 batmonReq.voltage = RF_1V85_BAT_VTG;// setze Schwellwert auf 1,85V
 batmonReq.RF_BatteryMonConf = RF_BatteryMonConf;// 
Confirm-Handler-Aufruf
 RF_BatteryMonReq(&batmonReq);
...
}

mein problem:
die funktion "RF_BatteryMonReq(&batmonReq);"
die dazu dient die werte zu setzen und bei erfolg den confirm-handler 
aufzurufen bringt mir den fehler:

D:\Meshnetics Version 2.3.0\ZDK_Complete\Sample 
Applications\kranhaken/kranenddevice.c:33: undefined reference to 
`RF_BatteryMonReq'
make: *** [link] Error 1
Build failed with 1 errors and 0 warnings...

die funktionen sind in der header rfBattery.h deklariert die ich auch in 
mein projekt eingebunden habe.die libs stehen auch alle in meinem 
makefile!

woran könnte es also liegen das der fehler auftritt???

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt nur 2 Möglichkeiten

* entweder du hast einen Tippfehler irgendwo im Namen
  (Aufruf mit Header File mit Source Code File in der die Funktion
   enthalten ist vergleichen)

* oder du hast eben nicht alles zu deinem Projekt hinzugefügt

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>die libs stehen auch alle in meinem makefile!

Hast du das Studio auf externes makefile umgestellt?

In der Default-Einstellung nutzt das Studio sein eigenes makefile, und 
kümmert sich nicht darum, was in deinem makefile steht. Da müsstest du 
die libs in den Projektoptionen hinzufügen.

Oliver

Autor: Tommy Tacker (tommy776)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Karl heinz Buchegger:

einen Tippfehler kann ich auf jedenfall ausschließen.hab alles in ruhe 
durchgeschaut und keinen gefunden.

@Oliver:

ja ich nutze ein externes makefile.

bin gerade echt ratlos!? :(

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ja ich nutze ein externes makefile.

Na, dann zeigs doch mal. Und schreib dazu, in welchen Pfaden deine libs 
zu finden sind.

Oder trag deine libpfade und libs in den Projektoptionen ein, und lass 
das Studio das makefile erstellen.

Oliver

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.