通常在使用 gcc
编写 C 代码时,我会使用以下一组警告标志(从多个来源痛苦地汇编而来):
-Wall -Wextra -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast \
-Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef \
-Wnested-externs -Wcast-qual -Wshadow -Wwrite-strings -Wno-unused-parameter \
-Wfloat-equal -pedantic -ansi
我会使用这套警告标志来构建(至少我的调试版本),并尽可能修复所有问题(通常是全部)。仅在它们不相关或无法修复时,才删除标志(几乎从不发生)。有时,如果我必须离开编译过程,我还会添加-Werror
。
我刚开始学习C++(是的,我落后15年了),我想一开始就走在正确的道路上。
我的问题是:是否有人有类似的预编译完整的C++警告标志集合在g++
下?(我知道其中许多将是相同的。)
-Wall
选项,那么它需要的是一个-Wbloody_everything
标志 :-) (注:这句话意思是希望gcc提供一个更全面的警告标志以替代-Wall
,因为-Wall
并不能覆盖所有可能存在的问题) - paxdiablo-Weverything
使用。我读过,甚至包括Clang++的开发人员也有点担心用户打开它;显然,它只是为内部开发使用而设计的。然而,这毫无意义,因为打开-Weverything
可能是发现你之前不知道的潜在有用的警告的最佳方式。 - Kyle Strand