Contrariamente a cl, che ha 4 livelli, gcc ha solo una serie di opzioni che è possibile attivare o disattivare.
Come menzionato da altri, lo -Wall
è l'impostazione predefinita, che attiva già molti avvisi. L'opzione -pedantic
ne aggiunge altri. E -Wextra
ancora un altro gruppo ...
Ma per catturare davvero molti avvisi, dovrai aggiungere molti manualmente.
V'è una serie che mi piace usare, anche se qualcuno mi ha detto che alcuni di questi erano contraddittorie, trovo che la lista piuttosto buono per il mio lavoro di sviluppo:
-Werror -Wall -Wextra -pedantic -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wundef -Wno-unused -Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option
Nota che faccio uso di -Werror
perché altrimenti si ricevono avvisi e tendono ad ignorarli. Con -Werror
, basta ignorare qualsiasi cosa! Scrivi codice pristine e il tuo software ha molte più probabilità di funzionare come previsto.
fonte
2013-08-06 04:12:55
'-Wall -Wextra -pedantic-errors' è un buon inizio, se non tutto ciò che serve. – chris
solo per chi usa clang su apple ha '-Weverything' – aaronman
@chris Tuttavia, con le nuove versioni di GCC (4.8.1 per me), non puoi mai usare Boost con quella combinazione di flag, a meno che non sopprimi specificamente gli avvisi generati da Aumenta il codice. '-Wunused-local-typedefs' anyone? –