PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eclipse CDT MinGW Warnings ausschalten


Bullz
2014-01-31, 08:24:44
Hallo, verwende Eclipse CDT und lerne mich gerade ein. Schreibe dementsprechend Codeschnipsel die nie Teils eines Programms sein werden.

Habe in den Projekteinstellungen unter c/c++ General Code Analysis alles abgehackt. Hat keine Auswirkungen gehabt.

Hab dann etwas über pragma gelesen. Leider hat mir das auch nicht geholfen.
http://stackoverflow.com/questions/1...lipse-in-mingw

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic pop

Was auch komisch ist. Alle Warnings werden mir rot dargestellt. Kann echte Fehler von Warnings nicht unterschieden .

Ectoplasma
2014-01-31, 10:44:56
Also das Pragma GCC kenne ich zwar nicht, obwohl ich viel mit dem GCC arbeite (Schande über mich), aber es wird mit Sicherheit in Eclipse CDT die Möglichkeit geben, im Make File ein paar custom Einstellungen zu machen.

Möchtest du zum Beispiel die Warnung "unused-variable" haben, dann lautet der Befehl "-Wunused-variable". Möchtest du die Warnung ausschalten, dann lautet der Befehl "-Wno-unused-variable". Letztere Anweisung ist natürlich nur dann sinnvoll, wenn der Warning-Level hoch eingestellt ist, z.B. "-Wall", für alle Warnungen eingeschaltet.

noid
2014-01-31, 11:41:28
Anstatt Warnings auszuschalten, die einen später doch nocht interesseren, sollte man lieber den optionalen Code entsprechend aus dem Projekt ausklammern oder per Präprozessor deaktivieren.

Bullz
2014-01-31, 14:19:07
Möchtest du zum Beispiel die Warnung "unused-variable" haben, dann lautet der Befehl "-Wunused-variable". Möchtest du die Warnung ausschalten, dann lautet der Befehl "-Wno-unused-variable". Letztere Anweisung ist natürlich nur dann sinnvoll, wenn der Warning-Level hoch eingestellt ist, z.B. "-Wall", für alle Warnungen eingeschaltet.

Hmm ... kann es daran liegen das ich diese pragma mark Befehle in makefile gehören und nicht in den Code ? Dann hätte ich das ganze Zeugs an eine falsche Stelle getan und es wäre klar warum nichts geht. Makefile habe ich noch nie erstellt. Ein Problem führt ins nächste ...



makefile:
all: hello

so in etwa ?
#pragma GCC diagnostic push

clean:
-rm main.o hello.exe hello

hello: main.o
g++ -g -o hello main.o

main.o: main.cpp
g++ -c -g main.cpp

Ectoplasma
2014-01-31, 16:23:17
Ne, die #pragmas gehören nicht in das Makefile. g++ würde die gar nicht verstehen. Du könntest z.B.

g++ -Wno-unused-variable -c -g main.cpp

schreiben. Der Weg den noid vorgeschlagen hat, ist auch ok, nur müsste man die Pragmas erst einmal zum Laufen bekommen. Ich weiss jetzt nicht, warum das bei dir nicht funktioniert. Ein Nachteil dies im Code zu machen ist aus meiner Sicht, dass es immer ein wenig fummelig ist, das für verschieden Compiler zum Laufen zu bekommen, da man immer mit Präprozessor #if #else Anweisungen im Code arbeiten muss.

Ich habe in meinen Makefiles immer ein Debug Build, in dem alle Warnings eingeschaltet sind und einen Release Build, in dem ich viele Warnings ausschalte.