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 ================
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
Oliver, vielen Dank, das war der Fehler! Und danke für den Hinweis mit dem include lock. Gruß, Roman
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.