fluxy
20.01.2005, 21:38
Hallo. Ich habe mal versucht für meine Projekte ein Basismakefile aufzubauen, ich will das Makefile aus dem sample-ordner nicht verwenden sondern mein eigenes. Leider klappt das nicht so wie ich es erwartet habe. Aus dem vorgefertigten Makefile habe ich entnommen, dass ich zunächst das .o aus dem .c erstelle und dann aus dem .o ein .elf. Leider klappt dieser zweite schritt bei mir schon nicht.
Hier meine Ausgaben:
vr-gcc -g -Os -Wall -Wstrict-prototypes -Wa,-ahlms=main.lst main.c -o main.o
main.c:7:2: warning: no newline at end of file
avr-gcc -W1,-Map=main.map,--cref -mmcu=at90s8535 main.o -o main.elf
main.o(.text+0x50): In function `__vector_10':
: multiple definition of `__bad_interrupt'
C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/lib/crts8535.o(.text+0x0): first defined here
main.o(.text+0x0): In function `__vector_default':
: multiple definition of `__vectors'
C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/lib/crts8535.o(.vectors+0x0): first defined here
make.exe: *** [main.elf] Error 1
---------------------------------------------------------------------------------
Ich weiss nicht ob es was bringt wenn ich mein Makefile poste. Es ist noch nicht so superlang, deshalb kann ich es mal posten:
MCU = at90s8535
FORMAT = ihex
LANGUAGE = -std=gnu99
TARGET = main
LIB =
INC =
CC = avr-gcc
FLAGS = -g -Os -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)
LINKERFLAGS = -W1,-Map=$(TARGET).map,--cref -mmcu=$(MCU)
ISP_DIR = C:/Programme/PonyProg2000/PONYPROG2000.EXE
OBJ = $(TARGET).o
ELF = $(TARGET).elf
OUT = $(TARGET).out
all: $(OBJ) $(ELF)
clean:
rm -f *.o
rm -f *.out
rm -f *.lst
rm -f *.elf
rm -f *.map
$(ELF): $(OBJ)
$(CC) $(LINKERFLAGS) $(OBJ) $(LIB) -o $@
main.o: main.c
$(CC) $(FLAGS) main.c -o $@
------------------------------------------------------------------------------------
Hoffentlich könnt ihr mir weiterhelfen....
Hier meine Ausgaben:
vr-gcc -g -Os -Wall -Wstrict-prototypes -Wa,-ahlms=main.lst main.c -o main.o
main.c:7:2: warning: no newline at end of file
avr-gcc -W1,-Map=main.map,--cref -mmcu=at90s8535 main.o -o main.elf
main.o(.text+0x50): In function `__vector_10':
: multiple definition of `__bad_interrupt'
C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/lib/crts8535.o(.text+0x0): first defined here
main.o(.text+0x0): In function `__vector_default':
: multiple definition of `__vectors'
C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/lib/crts8535.o(.vectors+0x0): first defined here
make.exe: *** [main.elf] Error 1
---------------------------------------------------------------------------------
Ich weiss nicht ob es was bringt wenn ich mein Makefile poste. Es ist noch nicht so superlang, deshalb kann ich es mal posten:
MCU = at90s8535
FORMAT = ihex
LANGUAGE = -std=gnu99
TARGET = main
LIB =
INC =
CC = avr-gcc
FLAGS = -g -Os -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)
LINKERFLAGS = -W1,-Map=$(TARGET).map,--cref -mmcu=$(MCU)
ISP_DIR = C:/Programme/PonyProg2000/PONYPROG2000.EXE
OBJ = $(TARGET).o
ELF = $(TARGET).elf
OUT = $(TARGET).out
all: $(OBJ) $(ELF)
clean:
rm -f *.o
rm -f *.out
rm -f *.lst
rm -f *.elf
rm -f *.map
$(ELF): $(OBJ)
$(CC) $(LINKERFLAGS) $(OBJ) $(LIB) -o $@
main.o: main.c
$(CC) $(FLAGS) main.c -o $@
------------------------------------------------------------------------------------
Hoffentlich könnt ihr mir weiterhelfen....