Share via


/Yd (Incluir información de depuración en un archivo objeto)

Incluye la información completa de depuración en todos los archivos objeto creados a partir de un archivo de encabezado precompilado (.pch) cuando se usa con las opciones /Yc y /Z7. Obsoleto.

Sintaxis

/Yd

Comentarios

/Yd está en desuso; Visual C++ ahora admite la escritura de varios objetos en un único archivo .pdb, use /Zi en su lugar. Para ver una lista de las opciones del compilador en desuso, consulte Opciones del compilador en desuso y eliminadas en Opciones del compilador enumeradas por categoría.

A no ser que necesite distribuir una biblioteca que contenga información de depuración, use la opción /Zi en lugar de /Z7 y /Yd.

El almacenamiento de la información de depuración completa en cada archivo .obj es necesario solo para distribuir las bibliotecas que contienen información de depuración. Ralentiza la compilación y requiere un espacio considerable en el disco. Cuando /Yc y /Z7 se usan sin /Yd, el compilador almacena la información de depuración común en el primer archivo .obj creado a partir del archivo .pch. El compilador no inserta esta información en los archivos .obj creados posteriormente a partir del archivo .pch; sino que inserta las referencias cruzadas a la información. No importa cuántos archivos .obj usen el archivo .pch, sólo un archivo .obj contiene la información de depuración común.

Aunque este comportamiento predeterminado consigue tiempos de compilación más rápidos y reduce las demandas de espacio en el disco, no es conveniente si un pequeño cambio requiere recompilar el archivo .obj que contiene la información de depuración común. En este caso, el compilador debe recompilar todos los archivos .obj que contengan las referencias cruzadas al archivo .obj original. Además, si se usa un archivo .pch común en diferentes proyectos, es difícil confiar en las referencias cruzadas a un único archivo .obj.

Para obtener más información sobre los encabezados precompilados, consulte:

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.

  3. Escriba la opción del compilador en el cuadro Opciones adicionales.

Para establecer esta opción del compilador mediante programación

Ejemplos

Supongamos que tiene dos archivos base, F.cpp y G.cpp, y que cada uno contiene estas instrucciones #include:

#include "windows.h"
#include "etc.h"

El siguiente comando crea el archivo de encabezado precompilado ETC.pch y el archivo objeto F.obj:

CL /YcETC.H /Z7 F.CPP

El archivo de objeto F.obj incluye información de los tipos y los símbolos para WINDOWS.h y ETC.h (y cualquier otro archivo de encabezado que incluyan). Ahora puede usar el encabezado precompilado de ETC.pch para compilar el archivo de origen G.cpp:

CL /YuETC.H /Z7 G.CPP

El archivo objeto G.obj no incluye la información de depuración para el encabezado precompilado, sino que simplemente hace referencia a esa información en el archivo F.obj. Tenga en cuenta que debe vincularse con el archivo F.obj.

Si el encabezado precompilado no se ha compilado con /Z7, puede usarlo en compilaciones posteriores mediante /Z7. Sin embargo, la información de depuración se coloca en el archivo objeto actual y los símbolos locales para las funciones y tipos definidos en el encabezado precompilado no están disponibles para el depurador.

Consulte también

Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC