Hallo, ich probiere die angehänge Datei blink.c im Terminal unter Ubuntu zu kompilieren. Dafür habe ich mir avr-libc, avr-binutils, avrdude und avr-gcc runtergeladen und installiert. Als Makefile habe ich das Template aus dem AVR-GCC Tutorial genommen. blink.c und die Makefile sind im selber Ordner und wenn ich make all aufrufe kommt das: -------- begin -------- avr-gcc (GCC) 4.9.2 Copyright (C) 2014 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. Linking: main.elf avr-gcc -mmcu=atmega328p -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=.o -std=gnu99 -DF_OSC=16000000 -MD -MP -MF .dep/main.elf.d .o --output main.elf -Wl,-Map=main.map,--cref -lm /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o:(.init9+0x0 ): undefined reference to `main' collect2: error: ld returned 1 exit status Makefile:378: recipe for target 'main.elf' failed make: *** [main.elf] Error 1 Die main.map enstand durch das versuchte kompilieren. Was läuft da schief? MfG, Steven
:
Verschoben durch User
Anstatt ".o" sollte da wohl "main.o" stehen. Ein Fehler im Makefile / Kommandozeile weil $(blink) leer auswertet.
:
Bearbeitet durch User
Wo müsste ich da sin der Makefile ändern? Hier?:(zeile 256) # Define all object files. OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) und das zu # Define all object files. OBJ = $(SRC:blink.c=main.o) $(ASRC:.S=.o) machen hilft nicht
Die SRC Zeile im Makefile so ändern: # List C source files here. (C dependencies are automatically generated.) SRC = blink.c Alternativ könnte man auch in der Kommandozeile make all blink=blink eingeben, damit $(blink) korrekt aufgelöst werden kann.
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.