Forum: Compiler & IDEs Fehlermeldung von WinAVR


von Benjamin (Gast)


Lesenswert?

Hallo Zusammen,
ich habe diese Fehlermeldung nach der Compilierung meines Programmes
bekommen: "gcc plug-in: Error: Object file not found on expected
location
C:\Programme\Atmel\AVR-Programme\Test_1\default\Test_1.elf".
Ich weiß nicht was der Compiler macht. Denn ich vermute das er
eigentlich den Objektfile erstellen sollte, oder??

Hilffffeeeeeeeeeeeee.......................  !!!!!!!!!

Gruß
Benjamin

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


Lesenswert?

> Ich weiß nicht was der Compiler macht. Denn ich vermute das er
> eigentlich den Objektfile erstellen sollte, oder??

Offensichtlich hat er es nicht getan.  Wird wohl noch 'ne Wanze
drin sein.

von Benjamin (Gast)


Lesenswert?

Hallo,

danke, hat anscheinend gestimmt. aber dann verstehe ich nicht das der
compiler dann versucht auf den object file zu zu greifen.... ?:o(

also jetzt habe ich noch einmal den source file compiliert und bekomme
im fenster "build" diese meldungen:

Build started 20.12.2005 at 11:42:28
avr-gcc  -mmcu=atmega32 -Wall -gdwarf-2 -O0
-Wp,-M,-MP,-MT,Test_1.o,-MF,dep/Test_1.o.d  -c  ../Test_1.c
In file included from ../Test_1.c:6:
C:/Programme/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr 
/iom32.h:41:4:
#error "Include <avr/io.h> instead of this file."
../Test_1.c:31: warning: return type of 'main' is not `int'
make: *** [Test_1.o] Error 1
Build succeeded with 1 Warnings...

warum schreibt in der vorletzten zeile "error" und in der letzten
zeile wird nur eine warnmeldung herausgegeben!? bei einem error sollte
doch ein zugriff auf das object file unterbrochen werden, oder!?

gruß
Benjamin

von Sascha (Gast)


Lesenswert?

Hi Benjamin,

häng doch mal bitte dein Sourcefile mit an damit wir auch mal so nach
dem Fehler suchen können. Denn die Letzte Fehlermeldung die du
geschrieben hast lässt daruf deuten das du einen Fehler in deiner
Source-Datei gemacht hast.

Gruß
   Sascha

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


Lesenswert?

(Bitte kauf' dir mal 'ne funktionierende Shifttaste.  Das macht das
Lesen für andere einfacher, und du möchstest doch sicher, dass andere
deine Beiträge lesen, oder?)

> warum schreibt in der vorletzten zeile "error" und in der letzten
> zeile wird nur eine warnmeldung herausgegeben!?

Weil das eine ein Fehler ist und das andere eine Warnung.

> bei einem error sollte
> doch ein zugriff auf das object file unterbrochen werden, oder!?

Hat er ja auch, das hat dir schließlich den AVR Studio am Ende wohl
auch gesagt (dass die Objektdatei nicht da war).

Auch wenn er keine Objektdatei ausgibt, compiliert er aber (sofern
möglich) noch weiter.  Schließlich möchtest du doch nicht für jeden
Fehler einzeln einen Compilerlauf anwerfen müssen, ihn beheben, nur um
dann erst den nächsten Fehler zu sehen.  So kannst du mehrere Sachen
auf einmal korrigieren.

Zum Fehler: <avr/iom32.h> ist für ein Nutzerprogramm (bei AVR-GCC)
tabu.  Bitte nimm <avr/io.h> und benutze den -mmcu= Schalter
(letzteres tust du schon).  Ich weiß, beim IAR ist das anders, dort
darf man sowohl <ioavr.h> als auch die einzelnen IO-Header wahlweise
einbinden, dafür muss man zum Umstellen auf einen anderen Prozessor
dort auch vier verschiedene Kommanozeilenschalter anpassen statt nur
des einen -mmcu= beim AVR-GCC.

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


Lesenswert?

Oh, jetzt sehe ich, worüber du gestolpert bist:

> Build succeeded with 1 Warnings...

Das ist natürlich Unfug, er ist eben nicht `succeeded', sondern
`failed'.  Das sollte man als Aufrufer einfach anhand des exit status
herausfinden können, auch ohne alle Fehlermeldungen korrekt geparst zu
haben.

Ich würde dir empfehlen, das mal an Atmel zurückzumelden, damit sie
das reparieren.

von Peter (Gast)


Lesenswert?

Und um das Warning [return type of 'main' is not 'int'] auch noch
weg zu kriegen, schreibe:

int main(void)
{
  ....
}

Den GCC erwartet vom main() einen Integer als Rückgabewert!

Gruss  Peter

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.