przeciwieństwie do cl, który posiada 4 poziomy, gcc ma tylko zestaw opcji, które można włączyć lub wyłączyć.
Jak wspomniano przez innych, -Wall
jest domyślnym, który włącza się już wiele ostrzeżeń. Opcja -pedantic
dodaje jeszcze kilka. I jeszcze jedna grupa ... -Wextra
kolejna grupa ...
Ale aby naprawdę uchwycić wiele ostrzeżeń, musisz ręcznie dodać wiele .
Jest to zestaw lubię używać, chociaż ktoś mi powiedział, że niektóre z nich były sprzeczne, uważam, że lista raczej dobre dla mojej pracy na rzecz rozwoju:
-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
pamiętać, że skorzystania z -Werror
ponieważ w przeciwnym razie otrzymasz ostrzeżenia i zignorujesz je. Z -Werror
, nie ignoruj niczego! Napisz nieskazitelny kod, a twoje oprogramowanie będzie działało zgodnie z oczekiwaniami.
'-Wall -Wextra -pedantic-errors' to dobry początek, jeśli nie wszystko, czego potrzebujesz. – chris
tylko dla każdego, kto używa klang na apple ma '-Weverything' – aaronman
@chris Jednakże, z nowymi wersjami GCC (4.8.1 dla mnie), nigdy nie możesz używać Boost z tą kombinacją flag, chyba że specjalnie tłumisz ostrzeżenia generowane przez Zwiększ kod. Ktoś jest "-Wunused-local-typedefs"? –