Reglas de coherencia para /Yc e /Yu

Cuando se utiliza un encabezado precompilado creado mediante /Yc o /Yu, el compilador compara el entorno de compilación actual con el que existía cuando se creó el archivo .pch.Asegúrese de especificar un entorno coherente con el anterior (utilice opciones coherentes del compilador, pragmas, etc.) para la compilación actual.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 archivo .pch; simplemente avisan de posibles conflictos.Las siguientes secciones explican los requisitos de coherencia para encabezados precompilados.

Coherencia entre las opciones del compilador

La tabla siguiente muestra opciones del compilador que podrían desencadenar una advertencia de incoherencia cuando se utiliza un encabezado precompilado:

Opción

Name

Regla

/D

Definir constantes y macros

Debe ser igual en la compilación que creó el encabezado precompilado y en la compilación actual.El estado de las constantes definidas no se comprueba, pero pueden producirse resultados imprevisibles si los archivos dependen de los valores de las constantes que cambian.

/E o /EP

Copiar los resultados del preprocesador a resultados estándar

Los encabezados precompilados no funcionan con la opción /E o /EP.

/Fr o /FR

Generar información del Explorador de código fuente de Microsoft

Para que las opciones /Fr y /FR sean válidas con la opción /Yu, también deben haber estado activas cuando se creó el encabezado precompilado.Las compilaciones sucesivas que utilizan el encabezado precompilado también generan información del Explorador de código fuente.La información del Explorador se incluye en un único archivo .sbr y la referencia a ella desde otros archivos se realiza del mismo modo que para la información de CodeView.La ubicación de la información del Explorador de código fuente no se puede cambiar.

/GA, /GD, /GE, /Gw o /GW

Opciones de protocolo de Windows

Debe ser igual en la compilación que creó el encabezado precompilado y en la compilación actual.Si las opciones difieren, se produce un mensaje de advertencia.

/Zi

Generar información de depuración completa

Si esta opción está activa cuando se crea el encabezado precompilado, las compilaciones subsiguientes que utilizan la precompilación podrán hacer uso de la información de depuración.Si /Zi no está activa cuando se crea el encabezado precompilado, las compilaciones subsiguientes que utilizan la precompilación y la opción /Zi producirá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 encabezado precompilado no estarán disponibles para el depurador.

[!NOTA]

Los encabezados precompilados están diseñados para su uso exclusivo con archivos que contengan archivos de código fuente de C y C++.

Coherencia de la ruta de acceso de inclusión

Un encabezado precompilado creado con /Yc no contiene información sobre la ruta de acceso de inclusión que estaba activa cuando se creó el archivo .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 utiliza un encabezado precompilado, el compilador no tiene en cuenta las directivas de preprocesador (incluidas las directivas pragma) que aparecen antes de la pragma hdrstop.La compilación especificada por esas directivas de preprocesador debe ser la misma que la compilación utilizada para crear el archivo de encabezado precompilado.

Coherencia de pragmas

Las directivas pragma procesadas durante la compilación de un encabezado precompilado suelen afectar al archivo en el que el encabezado precompilado se utiliza posteriormente.Las siguientes directivas pragma afectan únicamente al código interno del archivo .pch; no afectan al código que utiliza posteriormente el archivo .pch:

Comment

page

subtitle

Linesize

pagesize

Título

Mensaje

skip

 

Las siguientes directivas pragma se conservan como parte de un encabezado precompilado y afectan al resto de una compilación que hace uso de él.

alloc_text

función

optimize

auto_inline

inline_depth

Pack

check_pointer

inline_recursion

same_seg

check_stack

intrinsic

advertencia

code_seg

loop_opt

 

data_seg

native_caller

 

Vea también

Referencia

Reglas de coherencia de los encabezados precompilados

/Yc (Crear archivo de encabezado precompilado)

/Yu (Utilizar el archivo de encabezado precompilado)