¿Es posible indicar al compilador GNU c ++ que se detenga después de que se encuentren 5 errores? No puedo encontrar esto en la documentación.
Respuestas:
La opción de la línea de comandos indica al compilador que se rinda después de N errores. Esta opción está presente en GCC 4.6 y posteriores.-fmax-errors=N
La opción de la línea de comandos -Wfatal-errors
indica al compilador que se rinda después de un error. Esta opción está presente en GCC 4.0 y posteriores.
En ambos casos, las advertencias no cuentan para el límite a menos que usted también lo especifique -Werror
.
-Wuninitialized
falsos positivos son: desperdicia I-cache en instrucciones de almacenamiento muertas pero no demostrablemente muertas; y si algo cambia y hace que la advertencia sea realmente positiva, queremos que valgrind lo detecte.
-fmax-errors
respeta la bandera (a partir de arm-none-eabi-gcc 5.4.1). Estaba usando la opción -finstrument-functions
y obtuve cientos de errores debido a una __cyg_profile_func_enter
función no definida .
Puede usar la opción gcc:
-fmax-errors=5
para este propósito.
También agradecería esa opción. Por ahora, estoy usando la siguiente solución para obtener los primeros cinco errores:
<make> 2>&1|grep error|head -5
Tengo que preguntarte por qué querrías hacer esto. A veces, el error que existe en el código no es el primero o incluso se encuentra en los primeros cinco errores. A veces está más allá de eso y solo es reconocible una vez que se desplaza hacia abajo en la lista. Un mejor método podría ser dividir su código y colocarlo en bibliotecas más pequeñas si le molestan los tiempos de compilación. O si le preocupa que las cosas se desplacen fuera de la pantalla de una línea de comando, use el operador '>>' para canalizar los mensajes a un archivo.
-Werror
. Creo que las advertencias deben tratarse como si fueran errores, porque la mayoría de las advertencias son una indicación de código defectuoso.