Arquivos PCH no processo de compilação
Geralmente, a base de código de um projeto de software está contida em vários c ou C++ arquivos de origem, arquivos de objeto, bibliotecas e arquivos de cabeçalho. Normalmente, um makefile coordena a combinação desses elementos em um arquivo executável. A figura a seguir mostra a estrutura de um makefile que usa um arquivo de cabeçalho pré-compilado. Os nomes de macro NMAKE e os nomes de arquivo neste diagrama são consistentes com aquelas no código de exemplo encontrado em Makefile de amostra para PCH e Código de exemplo para PCH.
A Figura usa três dispositivos diagramáticas para mostrar o fluxo do processo de compilação. Chamado retângulos representam cada arquivo ou macro; as três macros representam um ou mais arquivos. Áreas sombreadas representam cada ação de compilação ou link. As setas mostram quais arquivos e as macros são combinadas durante a compilação ou de um processo de vinculação.
Estrutura de um Makefile que usa um arquivo de cabeçalho pré-compilado
Começando da parte superior do diagrama, STABLEHDRS e o autônomo no qual você provavelmente não precisará de recompilação de arquivos de lista de macros NMAKE são. Esses arquivos são compilados usando a seqüência de comando
CL /c /W3 /Yc$(BOUNDRY) applib.cpp myapp.cpp
somente se o arquivo de cabeçalho pré-compilado (STABLE.pch) não existe ou se você fizer alterações nos arquivos listados em duas macros. Em ambos os casos, o arquivo de cabeçalho pré-compilado conterá o código apenas dos arquivos listados na macro STABLEHDRS. Liste o último arquivo que você deseja pré-compilado na macro autônomo.
Os arquivos que você listar as macros podem ser arquivos de cabeçalho ou de arquivos de código-fonte c ou C++. (Um arquivo de .pch único não pode ser usado com os módulos de c e C++.) Observe que você pode usar o hdrstop macro parar a pré-compilação em algum momento dentro do arquivo autônomo. Consulte hdrstop para obter mais informações.
Continuando para baixo no diagrama, o APPLIB.obj representa o código de suporte usado em sua aplicação final. Ele é criado a partir de APPLIB.cpp, os arquivos listados na macro UNSTABLEHDRS e pré-compilado código do cabeçalho pré-compilado.
MYAPP.obj representa a sua aplicação final. Ele é criado a partir de MYAPP.cpp, os arquivos listados na macro UNSTABLEHDRS e pré-compilado código do cabeçalho pré-compilado.
Finalmente, o arquivo executável (MYAPP.EXE) é criado, vinculando os arquivos listados na macro de OBJETOS (APPLIB.obj e MYAPP.obj).
Para mais discussões sobre a figura, consulte: