Verwenden Sie immer -O
oder über ( -O1
, -O2
, -Os
, etc.). Auf der Standardoptimierungsstufe setzt gcc auf Kompilierungsgeschwindigkeit und führt nicht genügend Analysen durch, um vor Dingen wie einheitlichen Variablen zu warnen.
Erwägen Sie, -Werror
Richtlinien zu erstellen, da Warnungen, die die Kompilierung nicht stoppen, häufig ignoriert werden.
-Wall
Aktiviert so ziemlich die Warnungen, bei denen es sich sehr wahrscheinlich um Fehler handelt.
In enthaltene Warnungen kennzeichnen in der -Wextra
Regel allgemeinen, legitimen Code. Sie können für Codeüberprüfungen nützlich sein (obwohl Programme im Fusselstil viel mehr Fallstricke flexibler finden), aber ich würde sie für die normale Entwicklung nicht aktivieren.
-Wfloat-equal
ist eine gute Idee, wenn die Entwickler des Projekts mit Gleitkommazahlen nicht vertraut sind, und eine schlechte Idee, wenn sie es sind.
-Winit-self
ist nützlich; Ich frage mich, warum es nicht in enthalten ist -Wuninitialized
.
-Wpointer-arith
ist nützlich, wenn Sie meistens portablen Code haben, der nicht funktioniert -pedantic
.
-save-temps
,-Wshadow
und-fmudflap
waren die größten Funde, von denen ich dank allem nichts wusste.