mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik undefined reference to


Autor: Ralf G. (sense)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

ich hab hier ein kleines großes Problem. Ich hab verschiedene 
Codeschnipsel aus dem Forum hier zusammengefügt und bisschen außenherum 
was geschrieben um eine LCD Uhr zu erhalten. Das LCD ist ein DOGM163 und 
die RTC ein DS1302, dass funktioniert schon wunderbar inkl einstellen, 
hat wunderbar compiled. Jetzt will ich noch eine Temperaturanzeige mit 
drin haben mit einem DS1820, da bin ich hier im Forum auch fündig 
geworden und habe das eingebaut. Nun habe ich das Problem, dass das 
AVR-Studio mir das ganze nicht compiled und ein undefined reference 
entgegenschmeißt(bzw 3) ich versteh aber nicht warum und wieso, ich hab 
den Temperaturteil genauso wie die anderen Teile eingefügt aber es 
funktioniert nicht.

Vllt. findet ihr ja meinen Fehler, Sourcecode hängt im Anhang.

Autor: blubb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
meist sind es aufrufe von funktionen die der compiler zu dieser zeit 
noch nicht kennt

du musst dafür sorgen das variablen und funktionsprototypen bekannt sind

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>undefined reference to

Die ganze Fehlermeldung posten.

Autor: Ralf G. (sense)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja stimmt das mit der Fehlermeldung kam mir auch gerade... sry

Also die Prototypen stehen in den Headerfiles und die hat der Compiler 
zur Verfügung. Die einzelnen *.o Dateien kann ich alle ohne Fehler 
erstellen aber der Link zur *.hex schlägt dann fehl.

Hier die Fehlermeldung:
Build started 9.4.2010 at 22:18:38
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d  -c  ../main.c
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd.o -MF dep/lcd.o.d  -c  ../lcd.c
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ds1202.o -MF dep/ds1202.o.d  -c  ../ds1202.c
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 1WIRE.o -MF dep/1WIRE.o.d  -c  ../1WIRE.C
cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT DELAY.o -MF dep/DELAY.o.d  -c  ../DELAY.C
cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT TEMPMEAS.o -MF dep/TEMPMEAS.o.d  -c  ../TEMPMEAS.C
cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
avr-gcc  -mmcu=attiny84 -Wall -gdwarf-2 -std=gnu99   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT TIMEBASE.o -MF dep/TIMEBASE.o.d  -c  ../TIMEBASE.C
cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
avr-gcc -mmcu=attiny84 -Wl,-Map=LCD_Clock.map main.o lcd.o ds1202.o 1WIRE.o DELAY.o TEMPMEAS.o TIMEBASE.o     -o LCD_Clock.elf
main.o: In function `main':
D:\Daten\AVR-Projects\LCD_Clock\default/../main.c:28: undefined reference to `init_timer'
D:\Daten\AVR-Projects\LCD_Clock\default/../main.c:89: undefined reference to `start_meas'
D:\Daten\AVR-Projects\LCD_Clock\default/../main.c:94: undefined reference to `read_meas'
make: *** [LCD_Clock.elf] Error 1
Build failed with 3 errors and 4 warnings...

P.S.Controller ist ein ATTiny 84

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. alle Dateierweiterungen 'klein' machen
2. alles #include anpassen
3. compilieren und linken
4. in Zukunft besser auf die Namen achten

Autor: Ralf G. (sense)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Danke für die schnelle Hilfe, ich hab bestimmt schon 2Stunden 
gesucht, aber das die Erweiterung *.H daran schuld ist, da bin ich nicht 
draufgekommen. Jetzt funktionierts :)

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

Bewertung
0 lesenswert
nicht lesenswert
Ralf G. schrieb:
> Vielen Danke für die schnelle Hilfe, ich hab bestimmt schon 2Stunden
> gesucht, aber das die Erweiterung *.H daran schuld ist, da bin ich nicht
> draufgekommen. Jetzt funktionierts :)


Die Erweiterung *.H ist es nicht :-)

Diese Warnung
cc1plus.exe: warning: command line option "-std=gnu99" is valid for 
C/ObjC but not for C++

sagt dir gar nichts?

1WIRE.C wird im C++ Modus kompiliert und nicht im C Modus. Ditto für 
alle anderen *.C

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.