Freigeben über


/Yu (Verwenden der vorkompilierten Headerdatei)

Weist den Compiler an, eine vorhandene vorkompilierte Headerdatei (.pch) in der aktuellen Kompilierung zu verwenden.

Syntax

/Yu[filename]

Argumente

filename
Der Name einer Headerdatei, die in der Quelldatei mit einer #include Präprozessordirektive enthalten ist.

Hinweise

Der Name der Includedatei muss für die /Yc Option, die den vorkompilierten Header erstellt, und für jede spätere /Yu Option, die die Verwendung des vorkompilierten Headers angibt, identisch sein.

For /Yc, filename specifies the point at which precompilation stops; the compiler precompiles all code though filename and names the result precompiled header using the base name of the include file and an extension of .pch.

Die .pch Datei muss mit /Yc.

Der Compiler behandelt den gesamten Code, der vor der H-Datei vorkompiliert ist. Er überspringt direkt über die Direktive, die #include der .h Datei zugeordnet ist, verwendet den in der .pch Datei enthaltenen Code und kompiliert dann den gesamten Code nach dem Dateinamen.

In der Befehlszeile ist kein Leerzeichen zwischen /Yu und Dateinamen zulässig.

Wenn Sie die /Yu Option ohne Dateinamen angeben, muss Ihr Quellprogramm ein #pragma hdrstop Pragma enthalten, das den Dateinamen des vorkompilierten Headers, .pch der Datei angibt. In diesem Fall verwendet der Compiler den vorkompilierten Header (.pch Datei) mit dem Namen /Fp (Name .pch file). Der Compiler überspringt den Speicherort dieses Pragmas und stellt den kompilierten Zustand aus der angegebenen vorkompilierten Headerdatei wieder her. Anschließend kompiliert er nur den Code, der auf das Pragma folgt. Wenn #pragma hdrstop kein Dateiname angegeben wird, sucht der Compiler nach einer Datei mit einem Namen, der vom Basisnamen der Quelldatei mit einer .pch Erweiterung abgeleitet ist. Sie können auch die /Fp Option verwenden, um eine andere .pch Datei anzugeben.

Wenn Sie die /Yu Option ohne Dateinamen angeben und kein hdrstop Pragma angeben, wird eine Fehlermeldung generiert, und die Kompilierung ist nicht erfolgreich.

Wenn die /YcDateinamen- und /YuDateinamenoptionen in derselben Befehlszeile auftreten und beide auf denselben Dateinamen verweisen, /Ychat der Dateiname Vorrang, wobei der gesamte Code bis einschließlich der benannten Datei vorkompiliert wird. Dieses Feature vereinfacht das Schreiben von Makefiles.

Da .pch Dateien Informationen über die Computerumgebung und Speicheradresseninformationen über das Programm enthalten, sollten Sie nur eine .pch Datei auf dem Computer verwenden, auf dem sie erstellt wurde.

Weitere Informationen zu vorkompilierten Headern finden Sie unter:

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

  1. Geben Sie /Yc eine .cpp Datei in Ihrem Projekt an (Erstellen einer vorkompilierten Headerdatei ).

  2. Ö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).

  3. Wählen Sie die Eigenschaftenseite "Konfigurationseigenschaften>C/C++>Precompiled Headers" aus.

  4. Ändern Sie die Precompiled Header-Eigenschaft , die Create/Use PCH Through File-Eigenschaft oder die Create/Use Precompiled Header-Eigenschaft .

So legen Sie diese Compileroption programmgesteuert fest

Beispiel

Wenn der folgende Code:

#include <afxwin.h>   // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h"    // Include information specific to this app
...

wird mithilfe der Befehlszeile CL /YuMYAPP.H PROG.CPPkompiliert, der Compiler verarbeitet die drei include-Anweisungen nicht. Stattdessen wird vorkompiliertem Code verwendet MYAPP.pch, aus dem die Zeit für die Vorverarbeitung aller drei Dateien (und alle dateien, die sie enthalten können) spart.

Sie können die Option mit der /Fp (Name .pch file) /Yu Option verwenden, um den Namen der .pch Datei anzugeben, wenn sich der Name von dem Dateinamenargument /Yc oder dem Basisnamen der Quelldatei unterscheidet, wie im folgenden Beispiel gezeigt:

CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP

Dieser Befehl gibt eine vorkompilierte Headerdatei mit dem Namen MYPCH.pchan. Der Compiler verwendet seinen Inhalt, um den vorkompilierten Zustand aller Headerdateien bis einschließlich wiederherzustellen MYAPP.h. Der Compiler kompiliert dann den Code, der nach der #include "MYAPP.h"*-Direktive auftritt.

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile