2010-12-16 13 views
9

He pasado mucho tiempo usando el compilador de Microsoft y he descubierto que los códigos de error que proporciona en los mensajes de compilación (como C1234, C5432, etc.) pueden ser muy útiles. Cuando recibo un error con el que no estoy familiarizado, puedo buscarlo fácilmente en MSDN y obtener una explicación más detallada de lo que significa.gcc error message repository

Ahora estoy usando gcc casi exclusivamente y me parece que echo de menos esa característica. Cuando recibo algún error en gcc, parece que paso mucho tiempo buscando el texto del error en busca de información al respecto. ¿Hay algún repositorio de mensajes de error de gcc donde cada uno se explique con más detalle?

+0

Duplicado: http://stackoverflow.com/questions/1043379/gnu--error-messages/ –

Respuesta

0

Encuentro que buscar en Google el mensaje de error exacto (omitir las cosas que cambian, como nombres de variables/funciones) da muy buenos resultados. A veces es útil incluir entre comillas todas o parte del mensaje de error para que se trate como una oración en lugar de como una colección de palabras.

This page explica algunos de los mensajes de error más básicos.

Si encuentra algo particularmente intrincado que le resulte difícil descifrar, puede, por supuesto, preguntar siempre por SO.

+0

Ya hago todo esto. – Mike

+0

Como con cualquier otra cosa, hay una curva de aprendizaje. Con el tiempo, encontrará que la gran mayoría de los errores son simples, y los que hay que buscar son raros (el más complicado de todos es aquel en el que el error no es el que parece). – NPE

+0

Pero ese es exactamente el punto . Cuando recibo un error que nunca he visto y utiliza algunas frases crípticas, sería bueno tener una forma rápida de buscar el error sin preguntarse qué tan confiable es la fuente de la información. Muchos errores como este están ligados a una parte específica de los estándares de C/C++; obtener una referencia de dónde estaría bien. ¿La respuesta a la pregunta es no, no hay repositorio o referencia, o simplemente desconoce uno? – Mike

4

No estoy al tanto de cualquier repositorio completo que incluye explicaciones completas, pero para mí mismo:

  • Con el tiempo usted aprenderá lo que significan los mensajes de error en particular (especialmente en términos de "que se está perdiendo una ; pero el compilador no puede decir ").
  • Google para la parte constante del mensaje de error entre comillas (sin incluir nombres de funciones, por ejemplo) a menudo da muy buenas explicaciones en los primeros 3-5 hits.
  • Los errores relacionados con las plantillas suelen ser los peores. Para ellos, el compilador le da dos números de línea: el lugar donde existe el código de la plantilla y el lugar donde se está creando la instancia. Mirar ambas líneas de código en contexto a menudo puede hacer las cosas mucho más claras ("¿Por qué usa esa sobrecarga?"). A veces, la forma más sencilla es crear un programa de prueba con tipos mucho más simples para determinar qué le dice el compilador (ya que no será lo suficientemente útil para mostrar los tiposdef en el mensaje de error).
  • Si se trata de un pequeño fragmento de código, pruébelo en un compilador diferente (por ejemplo, Comeau en línea) y vea si el error es más claro.