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
Ohne Code keine chance...
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.