/Yu
(Použití předkompilovaného souboru hlaviček)
Dává kompilátoru pokyn, aby v aktuální kompilaci použil existující předkompilovaný soubor hlavičky (.pch
).
Syntaxe
/Yu
[název_souboru]
Argumenty
filename
Název hlavičkového souboru, který je součástí zdrojového souboru pomocí #include
direktivy preprocesoru.
Poznámky
Název souboru zahrnutí musí být stejný jak pro /Yc
možnost, která vytvoří předkompilovanou hlavičku, tak pro jakoukoli pozdější /Yu
možnost, která označuje použití předkompilované hlavičky.
Pro /Yc
, název souboru určuje bod, ve kterém se předkompilace zastaví; kompilátor předkompiluje veškerý kód, i když název souboru a názvy výsledné předkompilované hlavičky pomocí základního názvu souboru include a přípony .pch
.
Soubor .pch
musí být vytvořen pomocí /Yc
.
Kompilátor zachází se všemi kódy, ke kterým dochází před souborem .h, jako předkompilovaný. Přeskočí přímo nad rámec direktivy #include
přidružené k .h
souboru, použije kód obsažený v .pch
souboru a pak zkompiluje veškerý kód za názvem souboru.
Na příkazovém řádku není mezi názvy souborů a název souboru povolen /Yu
žádný prostor.
Když zadáte /Yu
možnost bez názvu souboru, musí zdrojový program obsahovat direktivu #pragma hdrstop
pragma, která určuje název souboru předkompilované hlavičky .pch
, souboru. V tomto případě kompilátor použije předkompilovanou hlavičku (.pch
soubor) s názvem /Fp (Name .pch file)
. Kompilátor přeskočí do umístění této direktivy pragma a obnoví zkompilovaný stav ze zadaného předkompilovaného hlavičkového souboru. Potom zkompiluje pouze kód, který následuje za direktivou pragma. Pokud #pragma hdrstop
nezadáte název souboru, kompilátor vyhledá soubor s názvem odvozeným od základního názvu zdrojového souboru s příponou .pch
. Můžete také použít /Fp
možnost zadat jiný .pch
soubor.
Pokud zadáte /Yu
možnost bez názvu souboru a nepodaří se zadat direktivu hdrstop
pragma, vygeneruje se chybová zpráva a kompilace je neúspěšná.
/Yc
Pokud se možnosti názvu souboru a /Yu
názvu souboru vyskytují na stejném příkazovém řádku a oba odkazují na stejný název souboru, /Yc
má přednost název souboru, předkompiluje veškerý kód až do pojmenovaného souboru a zahrne ho. Tato funkce zjednodušuje zápis souborů pravidel.
Protože .pch
soubory obsahují informace o prostředí počítače a informace o adrese paměti o programu, měli byste použít .pch
pouze soubor na počítači, ve kterém byl vytvořen.
Další informace o předkompilovaných hlavičkách najdete tady:
Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio
Zadejte
/Yc
(vytvořit předkompilovaný soubor hlaviček) v .cpp souboru v projektu.Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností Vlastností>konfigurace C/C++>Předkompilované hlavičky.
Upravte vlastnost Předkompilované hlavičky, vlastnost Create/Use PCH Through File nebo Create/Use Precompiled Header vlastnost.
Programové nastavení tohoto parametru kompilátoru
Příklad
Pokud následující kód:
#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h" // Include information specific to this app
...
je zkompilován pomocí příkazového řádku CL /YuMYAPP.H PROG.CPP
, kompilátor nezpracuje tři příkazy include. Místo toho používá předkompilovaný kód, MYAPP.pch
který šetří čas při předběžném zpracování všech tří souborů (a všech souborů, které mohou zahrnovat).
Možnost s /Yu
možností můžete použít /Fp (Name .pch file)
k zadání názvu .pch
souboru, pokud se název liší od argumentu /Yc
názvu souboru nebo základního názvu zdrojového souboru, jak je znázorněno v následujícím příkladu:
CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP
Tento příkaz určuje předkompilovaný soubor hlaviček s názvem MYPCH.pch
. Kompilátor používá svůj obsah k obnovení předkompilovaného stavu všech souborů hlaviček až do a včetně MYAPP.h
. Kompilátor pak zkompiluje kód, který nastane po direktivě #include "MYAPP.h"
* .
Viz také
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC