Mal wieder undefined reference to

#4010718
Lesenswert?

Hallo,
bin mit dem Einbinden von Headern und dem Linken mehrerer .c-sourcen 
noch nicht sehr bewandert; habe einige Zeit mit threads zu meinem Thema 
verbracht und komme leider dennoch nicht zu einer Lösung.

Beim Compilieren der angehängten Dateien gibt es kein Problem, aber beim 
Linken der .o-files kommt folgende Meldung (undefined reference):

Bin für jede Hilfe dankbar!
Roman


-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: Beispiel.c
avr-gcc -c -mmcu=atmega328p -I. -gdwarf-2 -DF_CPU=16000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wundef -Wa,-adhlns=obj/Beispiel.lst  -std=gnu99 
--combine -fwhole-program -Wundef -MD -MP -MF .dep/Beispiel.o.d 
Beispiel.c -o obj/Beispiel.o

Linking: main.elf
avr-gcc -mmcu=atmega328p -I. -gdwarf-2 -DF_CPU=16000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wundef -Wa,-adhlns=obj/main.o  -std=gnu99 --combine 
-fwhole-program -Wundef -MD -MP -MF .dep/main.elf.d obj/main.o 
obj/Beispiel.o --output main.elf -Wl,-Map=main.map,--cref    -lm
obj/main.o: In function `__vector_16':
C:\WinAVR-20100110\sample/main.c:62: undefined reference to 
`Beispiel_Zahluebergabe'
C:\WinAVR-20100110\sample/main.c:63: undefined reference to 
`Beispiel_Multiplexer'
obj/main.o: In function `main':
C:\WinAVR-20100110\sample/main.c:25: undefined reference to 
`Beispiel_Init'
make: *** [main.elf] Error 1
<<< Process finished. (Exit code 2)
================ READY ================
Angehängte Dateien:
#4010740
Lesenswert?

Das Compilerflag "-fwhole-program" sorgt dafür, dass keine Symbole 
exportiert werden müssen und somit der komplette Inhalt von Beispiel.c 
wegoptimiert werden kann. Sollte man nur nehmen, wenn das Programm aus 
einem c-file besteht.


Außerdem solltest Du mal nach dem Begriff "Include-Lock" googeln. Du 
hast da zwar initiative ergriffen, aber das macht so nicht wirklich 
Sinn.


Grüße Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren