使用仅fsyntax参数切换警告

时间:2014-12-09 11:04:29

标签: c++ c gcc compilation g++

我有一个关于g ++和gcc之间编译的问题。

如果我写这段代码:

int main(int args, char* argv[]){
    return 0;
}

并使用:g++ -fsyntax-only -Wall -Wextra -Werror

进行编译

该文件是否具有.c.cpp扩展名,但它不会抱怨未使用的参数(argsargv)。

-Wunused选项仅在我使用.c扩展名和gcc编译文件时才有效。

所以我的问题是:是否可以在所有其他情况下使用fsyntax-only参数启用警告?

提前感谢您的任何回复

2 个答案:

答案 0 :(得分:0)

不,它不是,-fsyntax-only只检查语法。 - 不是

Options to Request or Suppress Warnings

  

-fsyntax-only

检查代码的语法   错误,但不要做任何事情。

答案 1 :(得分:0)

这个异常似乎是一个g ++编译器错误。 OP的 观察结果用g ++ 5.4确认,但g ++ 6.3给出 预期警告:

$ g++-6 -fsyntax-only -Wall -Wextra -Werror test.cpp 
test.cpp: In function ‘int main(int, char**)’:
test.cpp:1:14: error: unused parameter ‘args’ [-Werror=unused-parameter]
 int main(int args, char* argv[]){
              ^~~~
test.cpp:1:31: error: unused parameter ‘argv’ [-Werror=unused-parameter]
 int main(int args, char* argv[]){
                               ^
cc1plus: all warnings being treated as errors