LCD mit Peters Lib. Prob mit make file

Gast #364122
Lesenswert?

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 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: Bild.elf
avr-gcc -mmcu=atmega8 -I. -gstabs -DF_CPU=8000000UL  -O0
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=E:/Projekte/Bild/Bild.o  -std=gnu99 -MD
-MP -MF .dep/Bild.elf.d E:/Projekte/Bild/Bild.o E:/Projekte/Bild/lcd.o
--output Bild.elf -Wl,-Map=Bild.map,--cref    -lm
E:/Projekte/Bild/lcd.o(.text+0x41c): In function `lcd_command':
E:/Projekte/Bild/lcd.c:336: multiple definition of `lcd_command'
E:/Projekte/Bild/Bild.o(.text+0x41c):E:/Projekte/Bild/lcd.c:336: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x44c): In function `lcd_data':
E:/Projekte/Bild/lcd.c:348: multiple definition of `lcd_data'
E:/Projekte/Bild/Bild.o(.text+0x44c):E:/Projekte/Bild/lcd.c:348: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x47c): In function `lcd_gotoxy':
E:/Projekte/Bild/lcd.c:362: multiple definition of `lcd_gotoxy'
E:/Projekte/Bild/Bild.o(.text+0x47c):E:/Projekte/Bild/lcd.c:362: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x4be): In function `lcd_getxy':
E:/Projekte/Bild/lcd.c:389: multiple definition of `lcd_getxy'
E:/Projekte/Bild/Bild.o(.text+0x4be):E:/Projekte/Bild/lcd.c:389: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x4d0): In function `lcd_clrscr':
E:/Projekte/Bild/lcd.c:398: multiple definition of `lcd_clrscr'
E:/Projekte/Bild/Bild.o(.text+0x4d0):E:/Projekte/Bild/lcd.c:398: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x4e2): In function `lcd_home':
E:/Projekte/Bild/lcd.c:407: multiple definition of `lcd_home'
E:/Projekte/Bild/Bild.o(.text+0x4e2):E:/Projekte/Bild/lcd.c:407: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x4f4): In function `lcd_putc':
E:/Projekte/Bild/lcd.c:418: multiple definition of `lcd_putc'
E:/Projekte/Bild/Bild.o(.text+0x4f4):E:/Projekte/Bild/lcd.c:418: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x570): In function `lcd_puts':
E:/Projekte/Bild/lcd.c:466: multiple definition of `lcd_puts'
E:/Projekte/Bild/Bild.o(.text+0x570):E:/Projekte/Bild/lcd.c:466: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x5b2): In function `lcd_puts_p':
E:/Projekte/Bild/lcd.c:483: multiple definition of `lcd_puts_p'
E:/Projekte/Bild/Bild.o(.text+0x5b2):E:/Projekte/Bild/lcd.c:483: first
defined here
E:/Projekte/Bild/lcd.o(.text+0x602): In function `lcd_init':
E:/Projekte/Bild/lcd.c:502: multiple definition of `lcd_init'
E:/Projekte/Bild/Bild.o(.text+0x602):E:/Projekte/Bild/lcd.c:502: first
defined here
make.exe: *** [Bild.elf] Error 1

> Process Exit Code: 2

So mein Prob ist die multiple definition. Das Problem stammt aus der
lcd.c aber an der hab ich garnichts gemacht sondern nur eingebunden.
Die lcd.h hab ich entsprechend angepasst. Prog ist im Anhang

Auserdem würde ich gerne wissen ob man R/W braucht da ich ja nur
schreiben will oder nutzt die lib von Peter Fleury die unbedingt?

Ich hasse es mich mit etwas nicht auszukennen :(.

MFG
Daniel
Angehängte Dateien:
Gast #364126
Lesenswert?

Eigentlich sollte die lcd.c im Makefile stehen. In deinem Programm
includierst du eigentlich nur die Headerdatei damit dem Compiler die
Funktionen beim Übersetzen bekannt sind.
Ergänze doch mal in deinem Makefile folgende Stelle:

# List C source files here. (C dependencies are automatically
generated.)
SRC = $(TARGET).c lcd.c

um das lcd.c
In deinem Hauptprogramm brauchst du dann nur noch die .h einbinden. So
ist es eigentlich korrekt.

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