在 gcc -w 用于禁用所有警告。但是在这种情况下,我无法启用特定的(例如 -Wreturn-type)。
是否可以禁用所有警告,但启用一些特定的警告?
作为一种解决方法,有没有办法一次生成所有 -Wno-xxx 的列表?它会有所帮助吗?我不想手动执行此操作只是为了发现它不等于-w。
在 gcc -w 用于禁用所有警告。但是在这种情况下,我无法启用特定的(例如 -Wreturn-type)。
是否可以禁用所有警告,但启用一些特定的警告?
作为一种解决方法,有没有办法一次生成所有 -Wno-xxx 的列表?它会有所帮助吗?我不想手动执行此操作只是为了发现它不等于-w。
您可以使用以下命令获取WARN_OPTS
适合直接注入您的变量Makefile
:
gcc --help=warnings | awk '
BEGIN { print "WARN_OPTS = \\" }
/-W[^ ]/ { print $1" \\"}
' | sed 's/^-W/ -Wno-/' >makefile.inject
这为您提供了输出(in 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>
后面切换到-W<something>
.