2
gcc -w用於禁用所有警告。但是在這種情況下,我不能啓用特定的(例如-Wreturn-type)。在gcc中禁用幾乎所有警告
是否可以禁用所有警告,但啓用幾個特定的警告?
作爲一種解決方法,是否有辦法一次生成所有-Wno-xxx列表?它會幫助嗎?我不想手動做這個,只是爲了發現它不等於-w。
gcc -w用於禁用所有警告。但是在這種情況下,我不能啓用特定的(例如-Wreturn-type)。在gcc中禁用幾乎所有警告
是否可以禁用所有警告,但啓用幾個特定的警告?
作爲一種解決方法,是否有辦法一次生成所有-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>
即可。
這很奇怪。你通常應**啓用**所有警告並禁用特定的... – Mat 2012-04-06 09:42:47
是的,你是對的,你知道的更好!但讓我們想象一下,我有一個遺留項目,其中有4 ml代碼行,我想找到具體的錯誤。 – queen3 2012-04-06 09:44:48
那麼,如果你只是指定'-Wreturn-type'(沒有其他警告相關的標誌),不是你想要的嗎? – Mat 2012-04-06 09:47:29