/Yu
(Usar arquivo de cabeçalho pré-compilado)
Instrui o compilador a usar um arquivo de cabeçalho pré-compilado existente (.pch
) na compilação atual.
Sintaxe
/Yu
[filename]
Argumentos
filename
O nome de um arquivo de cabeçalho, que está incluído no arquivo de origem usando uma diretiva de pré-processador #include
.
Comentários
O nome do arquivo de inclusão deve ser o mesmo para a opção /Yc
que cria o cabeçalho pré-compilado e para qualquer opção posterior /Yu
que indique o uso do cabeçalho pré-compilado.
Para /Yc
, o nome de arquivo especifica o ponto no qual a pré-compilação é interrompida; o compilador pré-compila todo o nome do arquivo e nomeia o cabeçalho pré-compilado resultante usando o nome base do arquivo de inclusão e uma extensão de .pch
.
O arquivo .pch
deve ter sido criado usando /Yc
.
O compilador trata todo o código que ocorre antes do arquivo .h como pré-compilado. Ele pula para um pouco além da #include
diretiva associada ao arquivo .h
, usa o código contido no arquivo .pch
e compila todo o código após o nome do arquivo.
Na linha de comando, nenhum espaço é permitido entre /Yu
e nome do arquivo.
Quando você especifica a opção /Yu
sem um nome de arquivo, seu programa de origem deve conter um pragma #pragma hdrstop
que especifique o nome do arquivo do cabeçalho pré-compilado, arquivo .pch
. Nesse caso, o compilador usará o cabeçalho pré-compilado (arquivo .pch
) nomeado por /Fp (Name .pch file)
. O compilador ignora o local desse pragma e restaura o estado compilado do arquivo de cabeçalho pré-compilado especificado. Em seguida, compila apenas o código que segue o pragma. Se #pragma hdrstop
não especificar um nome de arquivo, o compilador procurará um arquivo com um nome derivado do nome base do arquivo de origem com uma extensão .pch
. Você também pode usar a opção /Fp
para especificar um arquivo .pch
diferente.
Se você especificar a opção /Yu
sem um nome de arquivo e não especificar um pragma hdrstop
, uma mensagem de erro será gerada e a compilação não será bem-sucedida.
Se as opções /Yc
nome de arquivo e /Yu
nome de arquivo ocorrerem na mesma linha de comando e ambas fizerem referência ao mesmo nome de arquivo, /Yc
nome do arquivo terá precedência, pré-compilando todo o código até e incluindo o arquivo nomeado. Esse recurso simplifica a gravação de makefiles.
Como os arquivos .pch
contêm informações sobre o ambiente do computador e informações de endereço de memória sobre o programa, você deve usar apenas um arquivo .pch
no computador em que ele foi criado.
Para obter mais informações sobre cabeçalhos pré-compilados, confira:
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Especifique
/Yc
(Criar arquivo de cabeçalho pré-compilado) em um arquivo .cpp em seu projeto.Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione Propriedades de Configuração>C/C++>Cabeçalhos pré-compilados na página de propriedades.
Modifique a propriedade Cabeçalho Pré-compilado, a propriedade Criar/Usar PCH por Meio do Arquivo ou a propriedade Criar/Usar Cabeçalho pré-compilado.
Para definir essa opção do compilador via programação
- Confira PrecompiledHeaderThrough e UsePrecompiledHeader.
Exemplo
Se o seguinte código:
#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h" // Include information specific to this app
...
for compilado usando a linha de comando CL /YuMYAPP.H PROG.CPP
, o compilador não processa as três instruções de inclusão. Em vez disso, ele usa o código pré-compilado de MYAPP.pch
, o que economiza o tempo envolvido no pré-processamento de todos os três arquivos (e quaisquer arquivos que eles possam incluir).
Você pode usar a opção /Fp (Name .pch file)
com a opção /Yu
para especificar o nome do arquivo .pch
se o nome for diferente do argumento filename para /Yc
ou do nome base do arquivo de origem, como no seguinte exemplo:
CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP
Este comando especifica um nome de arquivo de cabeçalho pré-compilado MYPCH.pch
. O compilador usa seu conteúdo para restaurar o estado pré-compilado de todos os arquivos de cabeçalho até e incluindo MYAPP.h
. Em seguida, o compilador compila o código que ocorre após a diretiva #include "MYAPP.h"
*.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC