/Yd (Debuginformationen in Objektdatei ablegen)

Paces schließt Debuginformationen in allen Objektdateien ab, die aus einer vorkompilierten Headerdatei (PCH)-Datei erstellt wurden, wenn sie mit den Optionen /Yc und /Z7 verwendet werden. Veraltet.

Syntax

/Yd

Bemerkungen

/Yd ist veraltet. Visual C++ jetzt mehrere Objekte unterstützt, die in eine einzelne PDB-Datei schreiben, verwenden Sie stattdessen /Zi . Eine Liste der veralteten Compileroptionen finden Sie unter Veraltete und entfernte Compileroptionen unter Compileroptionen nach Kategorie aufgelistet.

Verwenden Sie die Option /Zi 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 wird verlangsamt, und es ist viel Speicherplatz erforderlich. 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 anschließend aus der PCH-Datei erstellt wurden. Er 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.

Dieses Standardverhalten führt zwar zu kürzeren Buildzeiten und verringert den Speicherplatzbedarf, ist jedoch nicht wünschenswert, wenn eine kleine Änderung eine Neuerstellung der OBJ-Datei mit den allgemeinen Debuginformationen erfordert. In diesem Fall muss der Compiler alle OBJ-Dateien mit Querverweisen auf die ursprüngliche OBJ-Datei neu erstellen. Wenn eine gemeinsame PCH-Datei von verschiedenen Projekten verwendet wird, ist die Abhängigkeit von Querverweisen auf eine einzelne OBJ-Datei ebenfalls 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. Wählen Sie die Eigenschaftenseite KonfigurationseigenschaftenC>/C++>- Befehlszeile aus.

  3. Geben Sie die Compileroption in das Feld Zusätzliche Optionen ein.

So legen Sie diese Compileroption programmgesteuert fest

Beispiele

Angenommen, Sie verfügen über zwei Basisdateien, F.cpp und G.cpp, die jeweils diese #include 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). Nun 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 erstellen 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