/Yd (Umieść informacje o debugowaniu w pliku obiektu)/Yd (Place Debug Information in Object File)

Tępy pełne informacje o debugowaniu we wszystkich plikach obiektów utworzonych na podstawie prekompilowanego pliku nagłówkowego (. pch), gdy jest używany z opcjami /YC i /Z7 .Paces complete debugging information in all object files created from a precompiled header (.pch) file when used with the /Yc and /Z7 options. Przestarzałe.Deprecated.

SkładniaSyntax

/Yd

UwagiRemarks

/YD jest przestarzała; Visual C++ teraz obsługuje wiele obiektów do zapisu w pojedynczym pliku. pdb, zamiast tego należy użyć /Zi ./Yd is deprecated; Visual C++ now supports multiple objects writing to a single .pdb file, use /Zi instead. Aby zapoznać się z listą przestarzałych opcji kompilatora, zobacz Opcje kompilatora przestarzałe i usunięte w opcjach kompilatora wymienionych według kategorii.For a list of deprecated compiler options, see Deprecated and Removed Compiler Options in Compiler Options Listed by Category.

Jeśli nie musisz dystrybuować biblioteki zawierającej informacje debugowania, użyj opcji /Zi zamiast /Z7 i /YD.Unless you need to distribute a library containing debugging information, use the /Zi option rather than /Z7 and /Yd.

Przechowywanie pełnych informacji o debugowaniu w każdym pliku. obj jest niezbędne tylko do dystrybucji bibliotek zawierających informacje o debugowaniu.Storing complete debugging information in every .obj file is necessary only to distribute libraries that contain debugging information. Spowalnia kompilację i wymaga dużej ilości miejsca na dysku.It slows compilation and requires considerable disk space. Gdy /YC i /Z7 są używane bez /YD, kompilator przechowuje typowe informacje o debugowaniu w pierwszym pliku. obj utworzonym na podstawie pliku. PCH.When /Yc and /Z7 are used without /Yd, the compiler stores common debugging information in the first .obj file created from the .pch file. Kompilator nie wstawia tych informacji do plików. obj, następnie utworzonych z pliku. PCH; Wstawia odwołania do informacji.The compiler does not insert this information into .obj files subsequently created from the .pch file; it inserts cross-references to the information. Niezależnie od tego, ile plików. obj używa pliku. PCH, tylko jeden plik. obj zawiera typowe informacje o debugowaniu.No matter how many .obj files use the .pch file, only one .obj file contains the common debugging information.

Chociaż to domyślne zachowanie powoduje szybsze Kompilowanie i zmniejsza wymagania dotyczące miejsca na dysku, jest to niepożądane, jeśli mała zmiana wymaga ponownego skompilowania pliku. obj zawierającego typowe informacje o debugowaniu.Although this default behavior results in faster build times and reduces disk-space demands, it is undesirable if a small change requires rebuilding the .obj file containing the common debugging information. W takim przypadku kompilator musi ponownie skompilować wszystkie pliki obj zawierające odwołania krzyżowe do oryginalnego pliku. obj.In this case, the compiler must rebuild all .obj files containing cross-references to the original .obj file. Ponadto, jeśli wspólny plik. PCH jest używany przez różne projekty, zależność między odwołaniami do pojedynczego pliku. obj jest trudna.Also, if a common .pch file is used by different projects, reliance on cross-references to a single .obj file is difficult.

Aby uzyskać więcej informacji na temat prekompilowanych nagłówków, zobacz:For more information on precompiled headers, see:

Aby ustawić tę opcję kompilatora w środowisku programowania Visual StudioTo set this compiler option in the Visual Studio development environment

  1. Otwórz okno dialogowe strony właściwości projektu.Open the project's Property Pages dialog box. Aby uzyskać szczegółowe informacje, zobacz Ustawianie kompilatora C++ i właściwości kompilacji w programie Visual Studio.For details, see Set C++ compiler and build properties in Visual Studio.

  2. Kliknij folder C/C++ .Click the C/C++ folder.

  3. Kliknij stronę właściwości wiersza polecenia .Click the Command Line property page.

  4. Wpisz opcję kompilatora w polu dodatkowe opcje .Type the compiler option in the Additional Options box.

Aby programowo ustawić tę opcję kompilatoraTo set this compiler option programmatically

PrzykładyExamples

Załóżmy, że masz dwa pliki podstawowe, F. cpp i G. cpp, z których każda zawiera następujące instrukcje #include :Suppose you have two base files, F.cpp and G.cpp, each containing these #include statements:

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

Następujące polecenie tworzy prekompilowany plik nagłówkowy itp. pch i plik obiektu F. obj:The following command creates the precompiled header file ETC.pch and the object file F.obj:

CL /YcETC.H /Z7 F.CPP

Plik obiektu F. obj zawiera informacje o typie i symbolach dla systemu WINDOWS. h i itp. h (oraz wszystkie inne pliki nagłówkowe, które zawierają).The object file F.obj includes type and symbol information for WINDOWS.h and ETC.h (and any other header files they include). Teraz można użyć prekompilowanego nagłówka itp. PCH do skompilowania pliku źródłowego G. cpp:Now you can use the precompiled header ETC.pch to compile the source file G.cpp:

CL /YuETC.H /Z7 G.CPP

Plik obiektu G. obj nie zawiera informacji o debugowaniu dla prekompilowanego nagłówka, ale po prostu odwołuje się do tych informacji w pliku F. obj.The object file G.obj does not include the debugging information for the precompiled header but simply references that information in the F.obj file. Należy pamiętać, że należy połączyć z plikiem F. obj.Note that you must link with the F.obj file.

Jeśli prekompilowany nagłówek nie został skompilowany przy użyciu /Z7, można nadal używać go w późniejszych kompilacjach przy użyciu /Z7.If your precompiled header was not compiled with /Z7, you can still use it in later compilations using /Z7. Informacje o debugowaniu są jednak umieszczane w bieżącym pliku obiektu, a symbole lokalne dla funkcji i typów zdefiniowane w prekompilowanym nagłówku nie są dostępne dla debugera.However, the debugging information is placed in the current object file, and local symbols for functions and types defined in the precompiled header are not available to the debugger.

Zobacz teżSee also

Opcje kompilatora MSVCMSVC Compiler Options
Składnia Command-Line kompilatora MSVCMSVC Compiler Command-Line Syntax