Forum: Compiler & IDEs AVR-Eclipse: Warning Level


von Chris R. (mrgreen)


Lesenswert?

Hallo,
ich habe gerade mal angefangen, vom AVRStudio auf Eclipse umzustellen.

Irgendwie habe ich in den Projekteigenschaften für den AVR-Compiler nur 
genau 3 Warning-Level: -w, -Wall und -Werror.

Das ist nicht so schön; wenn ich -Wall auswähle, behandelt er trotzdem 
alle Warnungen als Fehler (-Werror ist NICHT ausgewählt).
Kann ich den Warninglevel denn nicht feiner einstellen?

Gruß
Mr.Green

von Simon K. (simon) Benutzerseite


Lesenswert?

Chris R. schrieb:
> Das ist nicht so schön; wenn ich -Wall auswähle, behandelt er trotzdem
> alle Warnungen als Fehler

Nicht dass ich wüsste.

von Stefan E. (sternst)


Lesenswert?

Simon K. schrieb:
> Chris R. schrieb:
>> Das ist nicht so schön; wenn ich -Wall auswähle, behandelt er trotzdem
>> alle Warnungen als Fehler
>
> Nicht dass ich wüsste.

Ich vermute mal, er meint damit eigentlich Eclipse, nicht den Compiler. 
Nach dem Compilerlauf werden wohl alle Stellen, die der Compiler 
angewarnt hat, von Eclipse als fehlerhaft markiert.

von Chris R. (mrgreen)


Lesenswert?

Ja, der gcc markiert sie schon richtig als "warning" auf der Konsole. 
Bei Wall oder Werror markiert Eclipse es dann aber als Fehler.

von 900ss (900ss)


Lesenswert?

Poste mal die Konsolenausgabe vom GCC und dann den dazugehörigen 
Bildschirmausschnitt vom Eclipse-Problems-View. Vorher den Problems-View 
löschen (rechter Mausklick).

Du kannst auch in den Properties alle Warnungen ausschalten und unter 
"Miscellaneous" noch eigene Optionen mit angeben.

Welche Error-Parser hast du angegeben?

von Chris R. (mrgreen)


Angehängte Dateien:

Lesenswert?

Konsolenausgabe:
*** Build of configuration Release for project 8x8x8 Cube ****

make all
Building file: ../Cube.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char 
-funsigned-bitfields -mmcu=atmega32 -DF_CPU=16000000UL -MMD -MP 
-MF"Cube.d" -MT"Cube.d" -c -o"Cube.o" "../Cube.c"
../Cube.c: In Funktion »data_out«:
../Cube.c:107: Warnung: Variable »temp2« wird nicht verwendet
../Cube.c:106: Warnung: Variable »temp« wird nicht verwendet
../Cube.c:262:1: Warnung: »/*« innerhalb des Kommentars
../Cube.c:266:2: Warnung: »/*« innerhalb des Kommentars
../Cube.c:297:2: Warnung: »/*« innerhalb des Kommentars
../Cube.c: In Funktion »__vector_11«:
../Cube.c:405: Warnung: Übergabe des Arguments 1 von »data_out« erzeugt 
Zeiger von Ganzzahl ohne Typkonvertierung
Finished building: ../Cube.c

[...]

Der Problem-View ist im Anhang.
Error-Parser sind
CDT Gnu Make
CDT Gnu C/C++
CDT Gnu Assembler
CDT Gnu Linker

AUßerdem war Wall ausgewählt (aber eben nicht Werror).

von Chris R. (mrgreen)


Lesenswert?

Ahh, Problem gefunden :)
Der Output von gcc war deutsch, und der Parser kann nur englisch ;)
Durch Setzen der LANG-Umgebungsvariable werden Warnings jetzt auch als 
solche markiert!

von 900ss (900ss)


Lesenswert?

Wer hat dir denn einen AVR-GCC mit deutschen Texten untergejubelt und 
das nur halb, am Ende sagt er dann: Finished building: ../Cube.c

Also meine Vermutung ist, dass die deutschen Warnungen des GCC in den 
Errorparsern nicht richtig verarbeitet werden. Wußte garnicht, dass es 
den AVR-GCC mit deutschen Texten gibt. Die Parser werden sicher nur die 
englischen Texte richtig verarbeiten.
Sieht z.B. so aus:
1
../drvuart.c:19: warning: 'xRxBuff' defined but not used

Bei dir kommt dafür:
1
 ................Warnung: Variable »xRxBuff« wird nicht verwendet

Versuche es mit der englischen Version. Dann sollte es klappen. Oder du 
mußt dir für Eclipse einen eigenen Errorparser schreiben. Geht auch :-)

Edit: Jetzt warst du schneller.

von Chris R. (mrgreen)


Lesenswert?

Der stammt aus den offiziellen Ubuntu Quellen (gcc-avr - 1:4.3.3.1 
(i386))
Keine Ahnung, warum er zur Hälfte deutsch ist.

von Simon K. (simon) Benutzerseite


Lesenswert?

Der Teil der auf Englisch ist gehört zum Build Script (Was Thomas 
Holland ins Plugin integriert hat und was unter anderem im Anschluss 
avr-size und avrdude aufruft).

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.