在 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>.