在gcc -w中用于禁用所有警告。但是在这种情况下,我无法启用特定的(例如-Wreturn-type)。
是否可以禁用所有警告,但只启用少量特定警告?
作为一种解决方法,有没有办法一次生成所有-Wno-xxx的列表?它会有帮助吗?我不想手动执行此操作只是为了发现它不等于-w。
答案 0 :(得分:1)
您可以使用以下命令获取适合直接注入WARN_OPTS
的{{1}}变量:
Makefile
这为您提供输出(在gcc --help=warnings | awk '
BEGIN { print "WARN_OPTS = \\" }
/-W[^ ]/ { print $1" \\"}
' | sed 's/^-W/ -Wno-/' >makefile.inject
中),如:
makefile.inject
将其放入您的实际WARN_OPTS = \
-Wno- \
-Wno-abi \
-Wno-address \
-Wno-aggregate-return \
-Wno-aliasing \
-Wno-align-commons \
-Wno-all \
-Wno-ampersand \
-Wno-array-bounds \
-Wno-array-temporaries \
: : :
-Wno-variadic-macros \
-Wno-vector-operation-performance \
-Wno-vla \
-Wno-volatile-register-var \
-Wno-write-strings \
-Wno-zero-as-null-pointer-constant \
后,只需使用Makefile
作为$(WARN_OPTS)
命令的一部分。
可能需要进行少量修饰:
gcc
; -Wno-
类型;和-Wno-<key>=<value>
字符。但与长列表的生成相比,这是最小的努力,你现在可以做的只是简单。
当您确定需要其中一个警告时,只需从\
切换回-Wno-<something>
。