avr-gcc Makefile

Gast #2626027
Lesenswert?

Hallo zusammen,

ich habe nach längerer Abstinenz wieder meinen AVR-ISP (für den 
Parallelport) aus dem Schrank geholt. Leider klappt das kompilieren 
unter Linux mit der frisch aufgesetzten Toolchain nicht.
Alles außer mfile ist aus der Packetverwaltung von Debian Sid (Aptosid).

Ein einfaches Programm für einen Atmega 8 mit blinkender LED ist im 
Anhang.
Denke der Fehler liegt in dem Makefile das mit mfile erstellt wurde.

Hier die Fehlermeldungen:
1
student@siduxbox:~/111temp$ make
2
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -Wall -Wstrict-prototypes -std=gnu99  temp.c -o temp.o 
3
temp.c:17:6: warning: return type of ‘main’ is not ‘int’
4
avr-gcc -mmcu=atmega8 -I. -gstabs   -Os -Wall -Wstrict-prototypes -std=gnu99  temp.o /home/lomba/111temp/temp.o   --output temp.elf     -lm
5
/home/lomba/111temp/temp.o: In function `sleep':
6
temp.c:8: multiple definition of `sleep'
7
temp.o:temp.c:8: first defined here
8
/home/lomba/111temp/temp.o: In function `main':
9
temp.c:19: multiple definition of `main'
10
temp.o:temp.c:19: first defined here
11
collect2: ld returned 1 exit status
12
make: *** [temp.elf] Fehler 1

Ich verstehe nur, dass die Funktionen doppelt vorhanden sein sollen. Wo 
liegt mein Fehler?
Angehängte Dateien:
#2626042
Lesenswert?

Dein Makefile
1
TARGET = temp
2
SRC = $(TARGET).c  /home/lomba/111temp/temp.c

Daraus folgt:
1
SRC = temp.c  /home/lomba/111temp/temp.c

somit bekommt der linker dann als object files:
1
temp.o /home/lomba/111temp/temp.o

Also 2 mal die selbe Objekt-Datei. Da tauchen natürlich alle 
Definitionen doppelt auf.

Gruß 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