Teilen über


/Yd (Debuginformationen in Objektdatei ablegen)

Paces complete debugging information in all object files created from a precompiled header (.pch) file when used with the /Yc and /Z7 options. Veraltet.

Syntax

/Yd

Hinweise

/Yd ist veraltet; Visual C++ unterstützt jetzt mehrere Objekte, die in eine einzelne PDB-Datei geschrieben werden, verwenden Sie stattdessen "/Zi ". Eine Liste der veralteten Compileroptionen finden Sie unter veraltete und entfernte Compileroptionen in den nach Kategorie aufgeführten Compileroptionen.

Verwenden Sie die /Zi-Option anstelle von /Z7 und /Yd, es sei denn, Sie müssen eine Bibliothek mit Debuginformationen verteilen.

Das Speichern vollständiger Debuginformationen in jeder .obj Datei ist nur erforderlich, um Bibliotheken zu verteilen, die Debuginformationen enthalten. Die Kompilierung verlangsamt und erfordert beträchtlichen Speicherplatz. Wenn /Yc und /Z7 ohne "/Yd" verwendet werden, speichert der Compiler allgemeine Debuginformationen in der ersten .obj Datei, die aus der PCH-Datei erstellt wurde. Der Compiler fügt diese Informationen nicht in .obj Dateien ein, die später aus der PCH-Datei erstellt wurden; sie fügt Querverweise auf die Informationen ein. Unabhängig davon, wie viele .obj Dateien die PCH-Datei verwenden, enthält nur eine .obj Datei die allgemeinen Debuginformationen.

Obwohl dieses Standardverhalten zu schnelleren Buildzeiten führt und die Speicherplatzanforderungen reduziert, ist es nicht wünschenswert, wenn eine kleine Änderung die .obj Datei neu erstellt, die die allgemeinen Debuginformationen enthält. In diesem Fall muss der Compiler alle .obj Dateien neu erstellen, die Querverweise auf die ursprüngliche .obj Datei enthalten. Wenn eine allgemeine PCH-Datei von verschiedenen Projekten verwendet wird, ist die Abhängigkeit von Querverweise auf eine einzelne .obj Datei schwierig.

Weitere Informationen zu vorkompilierten Headern finden Sie unter:

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Geben Sie die Compileroption im Feld "Zusätzliche Optionen " ein.

So legen Sie diese Compileroption programmgesteuert fest

Beispiele

Angenommen, Sie haben zwei Basisdateien, F.cpp und G.cpp, die jeweils diese #include Anweisungen enthalten:

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

Der folgende Befehl erstellt die vorkompilierte Headerdatei ETC.pch und die Objektdatei F.obj:

CL /YcETC.H /Z7 F.CPP

Die Objektdatei F.obj enthält Typ- und Symbolinformationen für WINDOWS.h und ETC.h (und alle anderen Headerdateien, die sie enthalten). Jetzt können Sie den vorkompilierten Header ETC.pch verwenden, um die Quelldatei G.cpp zu kompilieren:

CL /YuETC.H /Z7 G.CPP

Die Objektdatei G.obj enthält nicht die Debuginformationen für den vorkompilierten Header, sondern verweist einfach auf diese Informationen in der F.obj Datei. Beachten Sie, dass Sie eine Verknüpfung mit der F.obj Datei herstellen müssen.

Wenn der vorkompilierte Header nicht mit /Z7 kompiliert wurde, können Sie ihn weiterhin in späteren Kompilierungen mit /Z7 verwenden. Die Debuginformationen werden jedoch in der aktuellen Objektdatei platziert, und lokale Symbole für Funktionen und Typen, die im vorkompilierten Header definiert sind, sind für den Debugger nicht verfügbar.

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile