Forum: Compiler & IDEs Linker Error


von Tom (Gast)


Lesenswert?

Hallo
ich bekomme mit dem AVR-GCC beim Linken Error-Meldungen die ich nicht 
zuordnen kann. Ich benutz den STK500 mit dem AVR Studio und den ATmega48 
Controller.

Anbei die Fehlermeldung, Fehler mit ERROR gekennzeichnet.

Build started 16.4.2008 at 16:34:15
avr-gcc.exe  -mmcu=atmega48 -Wall -gdwarf-2  -O2 -funsigned-char -MD -MP 
-MT main.o -MF dep/main.o.d  -c  ../main.c
avr-gcc.exe  -mmcu=atmega48 -Wall -gdwarf-2  -O2 -funsigned-char -MD -MP 
-MT uart0.o -MF dep/uart0.o.d  -c  ../uart0.c
ERROR avr-gcc.exe -mmcu=atmega48  main.o uart0.o     -o Fill_Stop.elf
ERROR avr-objcopy -O ihex -R .eeprom  Fill_Stop.elf Fill_Stop.hex
ERROR avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" 
--change-section-lma .eeprom=0 --no-change-warnings -O ihex 
Fill_Stop.elf Fill_Stop.eep || exit 0

AVR Memory Usage
----------------
Device: atmega48

Program:     594 bytes (14.5% Full)
(.text + .data + .bootloader)

Data:         14 bytes (2.7% Full)
(.data + .bss + .noinit)


Build failed with 3 errors and 0 warnings...


Wenn ich nach dem Übersetzen mit den Fehlermeldungen das File dann 
programmiere tuts. Vielleicht weiss ja jemand Rat!

gruß tom

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich sehe da außer deiner Hervorhebung keine Fehlermeldungen.

von Tom (Gast)


Lesenswert?

Die mit "ERROR" gekennzeichneten Zeilen werden im AVR-Studio mit rotem 
Punkt markiert und unten dann 3 errors angezeigt.

von Rolf Magnus (Gast)


Lesenswert?

Und das ist alles? Diese Zeilen sagen nur aus, daß Fehler aufgetreten 
sind. Eine Fehlermeldung würde auch sagen, welche Fehler das waren. 
Wenn ich das richtig sehe, gibt die letzte Linker-Zeile eigentlich immer 
Erfolg zurück, und daher dürfte das eigentlich niemals als Fehler 
markiert werden. Meine erste Vermutung wäre, daß an deiner Installation 
was kaputt ist.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tom wrote:

> Die mit "ERROR" gekennzeichneten Zeilen werden im AVR-Studio mit rotem
> Punkt markiert und unten dann 3 errors angezeigt.

Dann verklage AVR Studio für den Unfug.

Nur, weil ich irgendwo `ERROR' davor schreibe, ist doch dort noch
lange kein Fehler...

von yalu (Gast)


Lesenswert?

Ich kenne das AVR-Studio nicht, aber könnte es vielleicht daran
liegen, dass der Name des Executables das Wort "Stop" enthält?
GNU-Make verwendet dieses bei bestimmen Fehlern als Abschiedsgruß,
vielleicht denkt deswegen das AVR-Studio, Make sei ausgestiegen.

Ändere einfach mal den Namen und schau, was passiert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

yalu wrote:

> Ich kenne das AVR-Studio nicht, aber könnte es vielleicht daran
> liegen, dass der Name des Executables das Wort "Stop" enthält?

Aua, klar, das wird's sein!

Tom, mach bei Atmel einen Bugreport dafür auf.

von Rolf Magnus (Gast)


Lesenswert?

Gibt es irgendeinen triftigen Grund, da umständlich, fehlerträchtig und 
Lokalisierungs-inkompatibel an der Ausgabe rumzuparsen, statt einfach 
den Exit-Code zu verwenden?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rolf Magnus wrote:

> Gibt es irgendeinen triftigen Grund, da umständlich, fehlerträchtig und
> Lokalisierungs-inkompatibel an der Ausgabe rumzuparsen, statt einfach
> den Exit-Code zu verwenden?

Windows-Programmierer zu sein?

Keine Ahnung, die berüchtigte Meldung ``Object file not found in
expected location'' hängt ja auch damit zusammen, und ich habe schon
vor einiger Zeit einen Bugreport dafür aufgemacht.

Irgendwie muss man die Fehlermeldungen natürlich schon parsen in einer
IDE (man will ja im Editor zur fehlerhaften Zeile springen können),
aber das schaffen andere IDEs um den GCC herum ja auch.  Für die
generelle Erfolgsbewertung ist es aber wirklich unverständlich, dass
der Exitcode nicht benutzt wird.

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.