Hallo, beim Linken bekomme ich den folgenden Fehler: Linking: main.elf avr-gcc -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=14745600UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MD -MP -MF .dep/main.elf.d main.o lcd.o befehle.o ISR.o ports.o sm.o timer.o timer1.o tools.o uart.o variables.o --output main.elf -Wl,-Map=main.map,--cref -lm befehle.o: In function `Befehlauswertung': C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/befehle.c:190: multiple definition of `bSmdState' main.o:C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/main.c:67: first defined here ISR.o: In function `__vector_19': C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/ISR.c:26: multiple definition of `bSmdState' main.o:C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/main.c:67: first defined here ports.o: In function `portinit': C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/ports.c:25: multiple definition of `bSmdState' main.o:C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/main.c:67: first defined here sm.o: In function `SMD_vStart': C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/sm.c:26: multiple definition of `bSmdState' main.o:C:\Dokumente und Einstellungen\Administrator\Desktop\SM\SM-WinAVR/main.c:67: first defined here make.exe: *** [main.elf] Error 1 Kann mir jemand sagen woran das liegt? Die Variable ist definitiv nicht mehrfach definiert ?!?! Das Makefile habe ich mal mit angehängt. Danke, Thomas
Die Variable wirst Du wohl in einer Headerdatei definiert haben, die Du in die verschiedenen Module eingebunden hast. Damit ist sie mehrfach definiert und der Linker nörgelt zu Recht. Diesen Fehler kann gcc verbergen/zudecken, wenn nicht -fno-common als Option gesetzt ist. Besser ist es aber, den Fehler nicht zu machen und in die Headerdatei das Schlüsselwort "extern" einzubauen, siehe auch http://www.mikrocontroller.net/forum-extern/read-2-305525.html#305525
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.