我正在尝试将警告“警告:传递 'func' 的参数 1 使指针从不进行强制转换的整数”作为错误,但找不到选项的名称。
我已经尝试了所有警告
gcc -Q --help=warnings | grep enabled
尝试执行 -Werror=XXXX 和列表中的选项名称,
甚至尝试禁用警告-Wno-XXXX,但无法禁用。
有人知道这个特定警告的选项吗?
我正在尝试将警告“警告:传递 'func' 的参数 1 使指针从不进行强制转换的整数”作为错误,但找不到选项的名称。
我已经尝试了所有警告
gcc -Q --help=warnings | grep enabled
尝试执行 -Werror=XXXX 和列表中的选项名称,
甚至尝试禁用警告-Wno-XXXX,但无法禁用。
有人知道这个特定警告的选项吗?
我也想知道它,所以我检查了 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
第二个参数WAIT_FOR_ASSIGNMENT
? 通常,这是诊断选项之一的标志。然而,在这种情况下它是零,所以我担心这意味着错误不能被专门制作为错误。
正如 gcc 手册所述
-Werror= 将指定的警告变成错误。附加了警告的说明符,例如 -Werror=switch 将 -Wswitch 控制的警告转换为错误。此开关采用否定形式,用于对特定警告否定 -Werror,例如 -Wno-error=switch 使 -Wswitch 警告不是错误,即使 -Werror 生效。您可以使用 -fdiagnostics-show-option 选项使用控制它的选项修改每个可控警告,以确定使用此选项的内容。
应使用 -fdiagnostics-show-option 开关报告任何受支持的选项。
如果你幸运的话,你的 gcc 版本可能会让你有选择地将警告变成错误的可能性。我使用的版本肯定没有,所以要么使用
-Werror 将所有警告变成错误。
或者
-pedantic-errors 与 -pedantic 类似,只是产生错误而不是警告。
可能是让 gcc 发出错误的唯一可能性。