我正在尝试发出警告“警告:传递'func'的参数1使指针从整数而不是强制转换”作为错误,但无法找到该选项的名称。
我已尝试过来自
的所有警告gcc -Q --help=warnings | grep enabled
尝试执行-Werror = XXXX和列表中选项的名称,
甚至尝试禁用警告-Wno-XXXX,但无法禁用。
是否有人知道此特定警告的选项?
答案 0 :(得分:2)
我也想知道它,所以我检查了gcc源码(4.8.1)。在c-typeck.c中,有以下代码发出警告:
WARN_FOR_ASSIGNMENT (location, 0,
G_("passing argument %d of %qE makes "
"pointer from integer without a cast"),
G_("assignment makes pointer from integer "
"without a cast"),
G_("initialization makes pointer from "
"integer without a cast"),
G_("return makes pointer from integer "
"without a cast"));
请参阅0
的{{1}}第二个参数?通常,这是其中一个诊断选项的标志。但是,在这种情况下,它为零,所以我担心这意味着错误不会被特别错误。
答案 1 :(得分:0)
正如gcc手册所述
-Werror =将指定的警告变为错误。附加警告的说明符,例如-Werror = switch转动警告 由-Wswitch控制成错误。此开关采用否定形式, 例如,用于否定特定警告的错误 -Wno-error = switch使-Wswitch警告不是错误,即使-Werror生效也是如此。您可以使用-fdiagnostics-show-option选项使用选项修改每个可控警告 控制它,以确定该选项使用什么。
应使用-fdiagnostics-show-option开关报告任何支持的选项。
如果你很幸运,你的gcc版本可能会让你选择性地将你的警告变成错误。 我使用的版本肯定没有,所以使用
-Werror 将所有警告变为错误。
或
-pedantic-错误 像-pedantic一样,除了产生错误而不是警告。
可能是让gcc发出错误的唯一可能性。