【问题标题】:Toggle warnings with fsyntax-only parameter使用 fsyntax-only 参数切换警告
【发布时间】:2014-12-09 11:04:28
【问题描述】:

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

如果我写这段代码:

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

并编译它:g++ -fsyntax-only -Wall -Wextra -Werror

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

-Wunused 选项只有在我编译带有.c 扩展名和gcc 的文件时才有效。

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

提前感谢您的任何回复

【问题讨论】:

  • 不,不是,-fsyntax-only 只检查语法。
  • @nos 这应该作为答案发布,而不是作为评论发布。不过,它可能会因为不正确而被否决。

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


【解决方案1】:

不,不是,-fsyntax-only 只检查语法。 – 没有

Options to Request or Suppress Warnings:

-fsyntax-only

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

【讨论】:

    【解决方案2】:

    此异常似乎是 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
    

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 2021-03-03
      • 2017-02-11
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多