Forum: Compiler & IDEs LCD mit Peters Lib. Prob mit make file


von Daniel H. (Gast)


Angehängte Dateien:

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

von Günni (Gast)


Lesenswert?

Hallo Daniel,

ich würde mal die <> gegen "" austauschen beim lcd.h. Befindet sich
doch sicherlich auch im Projektverzeichnis.

Grüße
Günni

von Daniel H. (Gast)


Lesenswert?

Das hab ich eben mal versucht aber bringt nix.

Kann es auch nicht da er das Problem mit der lcd.c hat.

Noch jemand nee Idee?

von Daniel H. (Gast)


Lesenswert?

Kann es sein das wenn man die lcd.c im Prog einbindet das man sie dann
nicht mir in der makefile einbinden muss?

Hab jetzt keine fehlermeldung mehr stimmt das?

Gruß Daniel

von Thomas (Gast)


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.

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
Noch kein Account? Hier anmelden.