Forum: Compiler & IDEs Eclipse und avr plugin zerschossen


von Chris T. (chris0086)


Lesenswert?

Hallo Leute, ich habe ein riesen Problem:
Schreibe in C mit eclipse und dem avr plugin.
Hatte das alles wie im Tutorial 
hier:http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/avr_eclipse_tutorial
beschrieben installiert und es funktionierte prima.

Dann sollt ich einen µc mit c51 Kern programmieren, also alles nötige 
für eclipse runter geladen und installiert. Aber funzte nicht.
Nun wollt ich wieder avr programmieren und das geht nun auch nichtmehr.
Hab alles deinstalliert und gelöscht und eclipse und plugins wie im oben 
genannten Tutorial wiede rinstalliert.
Leider geht es trotzdem nicht.

Beim compilieren kommt nun folgender Fehler:
Building file: ../main.c

Invoking: AVR Compiler
avr-gcc -Wall -g2 -gstabs -O2 -fpack-struct -fshort-enums 
-funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=8000000UL 
-MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
/usr/bin/sh: /c/WinAVR-20081205/bin/avr-gcc: Bad file number
make: *** [main.o] Error 126

Weis jemadn woran es liegen kann?
Stehe kurz davor ne Formatiersession zu starten, weil ich das unbedingt 
brauche.

von Klaus F. (kfalser)


Lesenswert?

Vielleicht solltest Du cygwin neu installieren?
Oder wo kommt das /usr/bin/sh her?

von Oliver (Gast)


Lesenswert?

Das ist wohl eher ein Problem der WinAVR-Installation.

Hat die c51-Compiler-Installation die Pfade verstellt?

Gibt es da eine andere "Linux"-sh auf deinem Rechner?

Als erstes würde ich mal WinAVR de- und dann neu installieren.

Oliver

von Chris T. (chris0086)


Lesenswert?

Servus , danke für die Antworten also es läuft glaub ich noch der sddc 
compiler. Muss ich mal sehen wie ich den wieder runter bekomme.
Winavr hab ich schon 2 mal neu istalliert in der im Tut angegebenen 
Version.

von Chris T. (chris0086)


Lesenswert?

Nachtrag sdcc ist nichtmehr installiert, also kann von da nichts kommen

von Thomas H. (innot)


Lesenswert?

Ich würde mal darauf tippen, dass ein falsches 'make' gestartet wird. 
Check doch mal die Pfade unter Preferences -> AVR -> Paths und stell 
sicher, dass der Pfad zu 'make' auf Dein winAVR\util\bin Verzeichnis 
zeigt.

Wenn das nicht hilft dann mal folgendes Probieren:
Bei einem AVR Projekt die Properties öffnen, zu C/C++ Build gehen, dann 
im 'Builder Settings' Tab das Häckchen bei 'use default build command' 
entfernen und dafür im Textfeld darunter den kompletten Pfad zu 'make' 
eingeben, z.b. 'D:\AVR\WinAVR-20090313\utils\bin\make'

Damit müsste es eigentlich funktionieren.


Hintergrund:

Eclipse startet zum kompilieren das erste 'make', das es im PATH findet. 
Deswegen hängt das AVR Plugin den Pfad zum Compiler und zu 'make' vor 
den normalen Systempfad. Der genauen PATH kann man sich bei den Project 
properties unter 'C/C++ Build -> Build Variables -> Show system 
variables' anzeigen lassen.

von Chris T. (chris0086)


Lesenswert?

Also das mit dem Pfad ím make manuell einffügen hat leider nicht 
funktioniert. Gibt es noch andere Vorschläge?

von Oliver (Gast)


Lesenswert?

Mach mal ein Eingabefenster auf, und tippe "which make.exe" ein. Da 
sollte dann das make aus dem WinAVR-Paket angezeigt werden. Wenn nicht, 
geh halt in die Systemsteuerung, und schmeiß den falschen Eintrag dort 
raus.

Oliver

von Chris T. (chris0086)


Lesenswert?

Hab ich gemacht, der Pfad stimmt auch.

von Chris T. (chris0086)


Lesenswert?

Also wenn ich ein neues Projekt anlege und nur die main.c und dann auf 
kompilieren drücke kommt folgende Meldung:
Building target: test2.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,test2.map -mmcu=atmega162 -o"test2.elf"  ./main.o
c:/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crt 
m162.o:(.init9+0x0):  undefined reference to `main'
make: *** [test2.elf] Error 1

vielleicht hilft das ja weiter

von Chris T. (chris0086)


Lesenswert?

Also hab jetzt ne andere festplatte reingeschoben und da windows 
installiert und eclipse wie im tut beschrieben und funzt einwandfrei.
Nur schade das es nicht mit der alten konfiguration geht.

von Thomas H. (innot)


Lesenswert?

Christian Hohmann schrieb:
> Also wenn ich ein neues Projekt anlege und nur die main.c und dann auf
> kompilieren drücke kommt folgende Meldung:
> Building target: test2.elf
> Invoking: AVR C Linker
> avr-gcc -Wl,-Map,test2.map -mmcu=atmega162 -o"test2.elf"  ./main.o
> c:/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crt 
m162.o:(.init9+0x0):
> undefined reference to `main'
> make: *** [test2.elf] Error 1
>
> vielleicht hilft das ja weiter

In Deiner main.c fehlt die "main" Funktion. Zum testen reicht ein
1
int main(void) {
2
    return 0;
3
}

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.