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
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>
ます。