Nói chung, tôi bật tất cả cảnh báo và sau đó loại bỏ các cờ đó một cách có chọn lọc cung cấp kết quả đầu ra vô ích. Trong một trong những dự án của tôi, tôi sử dụng C sau và C++ cảnh báo:
-pedantic
-Wall
-Wextra
-Wformat=2
-Wmissing-include-dirs
-Wswitch-default
-Wswitch-enum
-Wunused
-Wstrict-aliasing=1
-Wfloat-equal
-Wundef
-Wunsafe-loop-optimizations
-Wpointer-arith
-Wcast-qual
-Wcast-align
-Wwrite-strings
-Wconversion
-Wmissing-format-attribute
-Wpacked
-Wredundant-decls
-Winvalid-pch
-Wvolatile-register-var
-Wsync-nand
-Wsign-conversion
-Wlogical-op
-Wmissing-declarations
-Wmissing-noreturn
-Wstrict-overflow=5
-Wstack-protector
Bên cạnh đó, tôi sử dụng C++ cờ sau:
-std=c++98
-Wnon-virtual-dtor
-Wctor-dtor-privacy
-Wstrict-null-sentinel
-Woverloaded-virtual
-Wsign-promo
Bên cạnh đó, đối với việc xây dựng phát hành để kích hoạt như sau cảnh báo:
-pedantic-errors
-Werror
-Wuninitialized
-Winit-self
-Wdisabled-optimization
tôi thấy nó khá khó chịu mà -Wall
cho phép chỉ ở mức tối thiểu tuyệt đối của cảnh báo thay vì "tất cả", như tên của nó.
lẽ kiểm tra tài liệu? – asveikau
Bản sao của http://stackoverflow.com/questions/399850/best-compiler-warning-level-for-c-c-compilers. – EmeryBerger
Tôi đã bỏ lỡ, xin lỗi. – peoro