【发布时间】:2014-04-13 14:20:45
【问题描述】:
我正在尝试在 Linux 内核中编译一些 C 代码。 我有一个巨大的项目,编译时没有任何警告。编译行非常长且复杂。
在项目中,编译器不会警告那些未使用的函数签名中的变量(即使它包含诸如 -Wall 之类的标志)。如:
void foo (int a) {
}
我不明白为什么它不会发出警告。 所以我通过运行检查了原始项目的实际编译行:
make -n
它没有取消此警告的标志 -Wno-unused-parameter。
有人知道取消此警告的标志吗?可能是包含 -Wno-unused-parameter 标志的不同标志?
谢谢
马特
【问题讨论】:
-
警告
-Wunused-parameter,在 gcc 版本 4.2.1 中,不是-Wall的一部分。 -
-Wall标志的名称选择不当。当然,它的名字暗示 all 警告已启用——但这只是一个谎言。我不确定-Wextra是否会接受其他所有内容,或者只是更多,但这至少是一个开始。 -
@mah:
-Wextra确实包括-Wunused-parameter。 -
是的,
-Wextra确实包含-Wunused-parameter,但请记住,只有在与-Wunused或-Wall一起使用时才会启用后者。
标签: c linux compiler-warnings