compiling

¿Cómo puedo desactivar que g++muestre las notas de los errores?

Al compilar,los errores suelen ir acompañados de una larga serie de notas (cian).¿Existe una bandera de g++para desactivar esto,mostrando sólo el error en sí?

El compilador no hará esto por usted, pero (hasta ahora...) los desarrolladores del compilador están siguiendo una convención de larga data (más de 30 años) adaptada de otros compiladores que brinda la información esencial en la primera línea, usando error: o warning: para marcar la advertencia. Si usa grep stderr para esos, verá la información mínima de advertencia/error.

grep es un buen punto de partida (y la salida "grep -n" es útil por sí misma). Estos mensajes siguen un patrón de nombre de archivo, número de línea y mensaje que es común a varias herramientas. Lo usé en vi-like-emacs aquí .

Recientemente (en 2014), gcc/g++ comenzó a agregar una "pila de llamadas" a los mensajes, lo que brinda información adicional. Eso depende de un cambio en el preprocesador para rastrear los números de línea que se pueden desactivar con una opción -P (indicada aquí ), pero que parece estar integrado de manera incompleta en una forma que suprimiría la pila de llamadas.

Usar clang no ayudaría mucho con esto; también puede ser muy detallado. El desarrollo de gcc/g++ ha agregado muchos mensajes como se indica aquí .




Al compilar, los errores suelen ir acompañados de un rastro largo (cian). ¿Hay un indicador de g ++ para deshabilitar esto, que solo muestra el error en sí?

  • Puede usar una herramienta antigua y que ya no es compatible, como STLFilt .

  • Puede cambiar a Clang , o usarlo para reportar errores solamente y realizar su compilación final en GNU g++ .

  • Puede familiarizarse con el STL,lo que facilitará el descifrado.

    Una buena comprensión del STL y cómo usarlo lo ayudará a evitar muchos errores en primer lugar. En segundo lugar, a menudo los mensajes de error se refieren a funciones en la fuente STL; si tiene una idea aproximada de cómo se implementa STL, esto puede ser extremadamente útil para descifrar de qué se trata el mensaje de error. Las versiones más recientes del compilador g++ a veces mejoran la salida, haciéndola más útil y menos detallada.

No es exactamente lo que quieres,pero puede acortar la salida:

  • Use el indicador -fmax-errors o la opción -Wfatal-errors :

    -fmax-errors=n

    Limita el número máximo de mensajes de error a n, momento en el cual GCC se retira en lugar de intentar continuar procesando el código fuente. Si n es 0 (el valor predeterminado), no hay límite en la cantidad de mensajes de error producidos. Si también se especifica -Wfatal- errors , entonces -Wfatal-errors tiene prioridad sobre esta opción.

    -Wfatal-errors

    Esta opción hace que el compilador aborte la compilación en el primer error ocurrido en lugar de tratar de seguir adelante e imprimir más mensajes de error.