2010-06-26 13 views
5

A veces necesito usar un gcc para el trabajo multiplataforma, y ​​a veces gcc realmente me divierte con sus advertencias. Por ejemplo:¿Dónde encontrar una lista completa de advertencias y errores de gcc?

#pragma vez en un archivo principal

Ésta es la advertencia muy informativo, pero realmente no sé lo que es un 'archivo principal' IS en la terminología de gcc y por lo que debe no contiene #pragma una vez :). Entonces, ¿existe alguna documentación que cubra todas las advertencias y errores de gcc (principalmente advertencias, errores son triviales) con algunos comentarios sobre ellos?

Respuesta

3

El objetivo de '#pragma once' es evitar que se vuelva a incluir un encabezado. Si lo tiene en un archivo fuente (generalmente un archivo '.c'), no lo leerá dos veces (normalmente, sé de un archivo fuente que se incluye a sí mismo [y no me gusta]; ¡no usa ni quiere #pragma once, sin embargo!). Entonces, un 'archivo principal' en este contexto es uno que aparece en la línea de comando, por ejemplo, en lugar de un encabezado.

En cuanto al objeto de la pregunta, el manual de GCC no parece tener una lista completa. No sé si realmente hay uno.

+0

Pero está en el encabezado. Un encabezado precompilado. – grigoryvp

+0

Se genera un encabezado precompilado, por lo que es un "archivo principal" al compilarlo, y '#pragma una vez 'probablemente solo tiene sentido cuando el preprocesador está haciendo inclusión, y no con encabezados precompilados. – hobbs

+0

@hobbs: Sí. 'gcc -c so.h' produce ' so.h: 1: 9: advertencia: #pragma una vez en el archivo principal' al compilar el encabezado en un encabezado precompilado. No estoy seguro de si hay una buena manera de suprimir esa advertencia. –

Cuestiones relacionadas