Compartir a través de


Reglas de coherencia para el uso de encabezados precompilados por cada archivo

Actualización: noviembre 2007

La opción /Yu del compilador permite especificar qué archivo de encabezado precompilado (PCH) se debe utilizar.

Cuando se utiliza un PCH, el compilador presupone el mismo entorno de compilación (usa opciones coherentes del compilador, pragmas, etc.) que se utilizó cuando se creó el PCH, a menos que se especifique lo contrario. Si el compilador detecta una incoherencia, emite una advertencia e identifica dicha incoherencia en los casos en que sea posible. Tales advertencias no indican necesariamente un problema con el PCH; simplemente avisan de posibles conflictos. Los requisitos de coherencia para archivos PCH se describen en las siguientes secciones.

Coherencia entre las opciones del compilador

Las siguientes opciones del compilador pueden desencadenar una advertencia de incoherencia cuando se utiliza un PCH:

  • Las macros creadas con la opción (/D) del preprocesador deben coincidir en la compilación que creó el PCH y la compilación actual. El estado de las constantes definidas no se comprueba, pero pueden producirse resultados imprevisibles si éstas cambian.

  • Los archivos PCH no funcionan con las opciones /E y /EP.

  • Los PCH deben crearse con la opción Generar información de exploración (/FR) o con la opción Excluir variables locales (/Fr) antes de que posteriores compilaciones que utilizan el PCH puedan usar estas opciones.

Compatible con C 7.0 (/Z7)

Si esta opción está activa cuando se crea el PCH, las compilaciones subsiguientes que utilizan el PCH podrán hacer uso de la información de depuración.

Si la opción Compatible con C 7.0 (/Z7) no se encuentra activa al crear el PCH, las compilaciones posteriores que utilizan el PCH y la opción /Z7 generarán un mensaje de advertencia. La información de depuración se coloca en el archivo .obj actual, pero los símbolos locales definidos en el PCH no estarán disponibles para el depurador.

Coherencia de la ruta de acceso de inclusión

Un PCH no contiene información sobre la ruta de acceso de inclusión que estaba vigente cuando se creó el PCH. Cuando se utiliza un archivo .pch, el compilador siempre usa la ruta de acceso de inclusión especificada en la compilación actual.

Coherencia de los archivos de código fuente

Cuando se especifica la opción Utilizar archivo de encabezado precompilado (/Yu), el compilador no tiene en cuenta las directivas de preprocesador (incluidas las pragmas) que aparecen en el código fuente que se va a precompilar. La compilación especificada por esas directivas de preprocesador debe ser la misma que la compilación utilizada para la opción Crear archivo de encabezado precompilado (/Yc).

Coherencia de pragmas

Las directivas pragma procesadas durante la creación de un PCH afectan normalmente al archivo con el que posteriormente se utiliza el PCH. Las pragmas de comentario y mensaje no afectan al resto de la compilación.

Las siguientes directivas pragma se conservan como parte de un PCH y afectan al resto de la compilación que utiliza el PCH.

alloc_text

include_alias

pack

auto_inline

init_seg

pointers_to_members

check_stack

inline_depth

setlocale

code_seg

inline_recursion

vtordisp

data_seg

intrinsic

warning

function

optimize

 

Vea también

Referencia

Reglas de coherencia de los encabezados precompilados

/Yu (Utilizar el archivo de encabezado precompilado)

Opciones del compilador