Quiero suprimir las advertencias específicas de g++. Soy consciente de la -Wno-XXX bandera, pero estoy buscando algo más específico. Quiero algunos de las advertencias de -Weffc++, pero no todos de ellos. Algo parecido a lo que se puede hacer con pelusa – deshabilitar mensajes específicos.

Hay una construida en forma de gcc para hacer esto? ¿Tengo que escribir un guión envoltorio?

  • Consulte esta respuesta si desea deshabilitar las advertencias para el n líneas de código.
  • En caso de que usted está wiliiing agregar el archivo de código fuente(s) puede hacer lo siguiente, como se describe aquí (y probablemente en otras respuestas): codeyarns.com/2014/03/11/…
InformationsquelleAutor Gilad Naor | 2009-01-28

4 Comentarios

  1. 20

    Por desgracia, esta característica no está previsto por g++. En VC++, puede utilizar #pragma advertencia para deshabilitar algunas advertencias específicas. En el gcc, el más cercano que puede tener es diagnóstico pragmas, que permite habilitar/deshabilitar ciertos tipos de diagnósticos de determinados archivos o proyectos.

  2. 11

    Para algunas advertencias, hay un modificador de línea de comandos para deshabilitar ellos. Para saber que pasar a utilizar, de paso fdiagnostics-mostrar opción-a gcc.

    • La opción de línea de comandos para obtener el nombre de la advertencia es útil.
  3. 2

    Sólo podría utilizar grep -v en la salida.

    Dependiendo de la advertencia de que usted desea deshabilitar, a veces se puede corregir en el código. E. g.:

    int main()
    {
      int i;
    }

    Genera: foo.cc:4: advertencia: no utilizada en la variable ‘i’

    Mientras que esto no:

    #define MARKUSED(X)  ((void)(&(X)))
    
    int main()
    {
      int i;
      MARKUSED(i);
    }
    • GCC tiene también la palabra clave extensión deseo de suprimir las advertencias de la siguiente instrucción.
    • Rodean a una sección de código, por ejemplo, #pragma GCC diagnostic ignored "-Wfloat-equal" y #pragma GCC diagnostic pop
  4. 2

    tubería de error estándar a un filtro que elimina las cosas que no quieres ver. Por ejemplo, este es mi archivo:

    principal.o: main.cpp
    g++ -c -Pared main.cpp 2>&1 | grep -v Wunused-variable

    • Parece ser más complejo como una advertencia de ajuste de múltiples líneas (es decir, cuando contiene fragmentos de código).

Dejar respuesta

Please enter your comment!
Please enter your name here