Compartilhar via


Makefile de amostra para PCH

O makefile a seguir usa as macros e um!SE, O!OUTRA!Estrutura de fluxo de controle de comando ENDIF para simplificar sua adaptação ao seu projeto.

# Makefile : Illustrates the effective use of precompiled
#            headers in a project
# Usage:     NMAKE option
# option:    DEBUG=[0|1]
#            (DEBUG not defined is equivalent to DEBUG=0)
OBJS = myapp.obj applib.obj
# List all stable header files in the STABLEHDRS macro.
STABLEHDRS = stable.h another.h
# List the final header file to be precompiled here:
BOUNDRY = stable.h
# List header files under development here:
UNSTABLEHDRS = unstable.h
# List all compiler options common to both debug and final
# versions of your code here:
CLFLAGS = /c /W3
# List all linker options common to both debug and final
# versions of your code here:
LINKFLAGS = /NOD /ONERROR:NOEXE
!IF "$(DEBUG)" == "1"
CLFLAGS   = /D_DEBUG $(CLFLAGS) /Od /Zi /f
LINKFLAGS = $(LINKFLAGS) /COD
LIBS      = slibce
!ELSE
CLFLAGS   = $(CLFLAGS) /Oselg /Gs
LINKFLAGS = $(LINKFLAGS)
LIBS      = slibce
!ENDIF
myapp.exe: $(OBJS)
    link $(LINKFLAGS) @<<
$(OBJS), myapp, NUL, $(LIBS), NUL;
<<
# Compile myapp
myapp.obj  : myapp.cpp $(UNSTABLEHDRS)  stable.pch
    $(CPP) $(CLFLAGS) /Yu$(BOUNDRY)    myapp.cpp
# Compile applib
applib.obj : applib.cpp $(UNSTABLEHDRS) stable.pch
    $(CPP) $(CLFLAGS) /Yu$(BOUNDRY)    applib.cpp
# Compile headers
stable.pch : $(STABLEHDRS)
    $(CPP) $(CLFLAGS) /Yc$(BOUNDRY)    applib.cpp myapp.cpp

Além de macros STABLEHDRS autônomo e UNSTABLEHDRS mostradas na Figura "Estrutura de um Makefile que usa um pré-compilado cabeçalho de arquivo" em PCH arquivos no processo de compilação, este makefile fornece uma macro CLFLAGS e uma macro LINKFLAGS.Você deve usar essas macros para listar o compilador e vinculador opções que se aplicam se você construir uma depuração ou versão final do arquivo executável do aplicativo.Há também uma macro com BIBLIOTECAS onde você lista as bibliotecas requer o seu projeto.

Também usa o makefile!SE, O!OUTRA!ENDIF para detectar se você define um símbolo de depuração na linha de comando NMAKE:

NMAKE DEBUG=[1|0]

Esse recurso torna possível para você usar o makefile mesmo durante o desenvolvimento e para as versões finais do seu programa — usar DEBUG = 0 para as versões finais.As linhas de comando a seguir são equivalentes:

NMAKE 
NMAKE DEBUG=0

Para obter mais informações sobre makefiles, consulte Referência NMAKE.Consulte também Opções de compilador e o Opções do vinculador.

Consulte também

Referência

Usando cabeçalhos pré-compilados em um projeto