/Yu
(Użyj wstępnie skompilowanego pliku nagłówka)
Nakazuje kompilatorowi użycie istniejącego wstępnie skompilowanego pliku nagłówka (.pch
) w bieżącej kompilacji.
Składnia
/Yu
[nazwa pliku]
Argumenty
filename
Nazwa pliku nagłówka, który jest zawarty w pliku źródłowym #include
przy użyciu dyrektywy preprocesora.
Uwagi
Nazwa pliku dołączania musi być taka sama zarówno dla /Yc
opcji, która tworzy prekompilowany nagłówek, jak i dla każdej późniejszej /Yu
opcji wskazującej użycie prekompilowanego nagłówka.
W przypadku /Yc
parametru nazwa pliku określa punkt, w którym zatrzymuje się wstępne kompilator; kompilator prekompiluje cały kod, choć nazwa pliku i nazwy wynikowego prekompilowanego nagłówka przy użyciu podstawowej nazwy pliku dołączania i rozszerzenia .pch
.
Plik .pch
musi zostać utworzony przy użyciu polecenia /Yc
.
Kompilator traktuje cały kod występujący przed plikiem h jako wstępnie skompilowany. Pominie ona tylko poza #include
dyrektywą skojarzona z plikiem .h
, używa kodu zawartego .pch
w pliku, a następnie kompiluje cały kod po nazwie pliku.
W wierszu polecenia nie jest dozwolone żadne miejsce między /Yu
i nazwa pliku.
Po określeniu /Yu
opcji bez nazwy pliku program źródłowy musi zawierać #pragma hdrstop
pragma, która określa nazwę pliku prekompilowanego nagłówka, .pch
pliku. W takim przypadku kompilator użyje prekompilowanego nagłówka (.pch
pliku) o nazwie ./Fp (Name .pch file)
Kompilator pomija lokalizację tej pragma i przywraca skompilowany stan z określonego prekompilowanego pliku nagłówka. Następnie kompiluje tylko kod, który jest zgodny z pragma. Jeśli #pragma hdrstop
nie określi nazwy pliku, kompilator szuka pliku o nazwie pochodzącej z podstawowej nazwy pliku źródłowego .pch
z rozszerzeniem. Możesz również użyć /Fp
opcji , aby określić inny .pch
plik.
Jeśli określisz /Yu
opcję bez nazwy pliku i nie określisz hdrstop
pragma, zostanie wygenerowany komunikat o błędzie i kompilacja zakończy się niepowodzeniem.
/Yc
Jeśli opcje nazwy pliku i /Yu
nazwy pliku występują w tym samym wierszu polecenia i oba odwołania do tej samej nazwy pliku, /Yc
nazwa pliku ma pierwszeństwo, wstępnie skompilując cały kod do i włącznie z nazwanym plikiem. Ta funkcja upraszcza pisanie plików make.
Ponieważ .pch
pliki zawierają informacje o środowisku maszyny i adresie pamięci o programie, należy użyć .pch
tylko pliku na maszynie, na której został utworzony.
Aby uzyskać więcej informacji na temat wstępnie skompilowanych nagłówków, zobacz:
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Określ
/Yc
(utwórz wstępnie skompilowany plik nagłówka) w pliku .cpp w projekcie.Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę właściwości Właściwości>konfiguracji C/C++>Prekompiled Headers.
Zmodyfikuj właściwość Prekompiled Header , właściwość Create/Use PCH Through File lub utwórz/użyj właściwości Prekompiled Header .
Aby programowo ustawić tę opcję kompilatora
- Zobacz PrecompiledHeaderThrough i UsePrecompiledHeader.
Przykład
Jeśli następujący kod:
#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h" // Include information specific to this app
...
jest kompilowany przy użyciu wiersza CL /YuMYAPP.H PROG.CPP
polecenia , kompilator nie przetwarza trzech instrukcji include. Zamiast tego używa wstępnie skompilowanego kodu z MYAPP.pch
programu , co pozwala zaoszczędzić czas związany ze wstępnym przetwarzaniem wszystkich trzech plików (i wszystkich plików, które mogą zawierać).
Możesz użyć /Fp (Name .pch file)
opcji z /Yu
opcją , aby określić nazwę pliku, jeśli nazwa .pch
różni się od argumentu nazwy pliku do /Yc
lub nazwy podstawowej pliku źródłowego, jak w poniższym przykładzie:
CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP
To polecenie określa wstępnie skompilowany plik nagłówka o nazwie MYPCH.pch
. Kompilator używa jego zawartości, aby przywrócić wstępnie skompilowany stan wszystkich plików nagłówka do i w tym MYAPP.h
. Kompilator kompiluje następnie kod, który występuje po #include "MYAPP.h"
dyrektywie *.
Zobacz też
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC