代码之家  ›  专栏  ›  技术社区  ›  Erel Segal-Halevi

命令行标志以禁止在clang中显示警告++

  •  0
  • Erel Segal-Halevi  · 技术社区  · 5 年前

    我编译了以下c++程序:

     int main() {  2==3;  }
    

    使用:

    clang++-5.0 -std=c++17 -Wunused-comparison prog.cpp
    

    得到警告:

    warning: equality comparison result unused [-Wunused-comparison]
    2==3;
    ~^~~
    

    ... 所以,这可能不是压制当当警告的正确方法。

    clang manual ,这部分是“待办事项”。

    禁用警告的正确命令行标志是什么?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Mike Kinghan Luchian Grigore    5 年前

    在你得到的叮当声诊断中:

    $ cat main.cpp
    int main()
    {
        2==3;
        return 0;
    }
    
    $ clang++ -c main.cpp
    main.cpp:3:6: warning: equality comparison result unused [-Wunused-comparison]
        2==3;
        ~^~~
    1 warning generated.
    

    括号内:

    -Wunused-comparison
    

    告诉你 -Wunused-comparison 是负责诊断的已启用警告(在本例中默认为已启用)。所以为了抑制诊断,您显式地使用匹配 -Wno-... 标志:

    $ clang++ -c -Wno-unused-comparison main.cpp; echo Done
    Done
    

    这同样适用于GCC。

    一般来说,压制警告是鲁莽的。我们应该慷慨地帮助他们- -Wall -Wextra [-pedantic] -然后修复有问题的代码。