Compartilhar via


Makefile de amostra para PCH

O makefile seguinte usa macros e um! IF,! ELSE,! ENDIF estrutura do comando de fluxo de controle para simplificar a adaptação a 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 BOUNDRY e UNSTABLEHDRS mostradas na figura a "Estrutura de um Makefile que usa um Precompiled cabeçalho arquivo" emArquivos PCH no processo compilação, este makefile fornece uma macro CLFLAGS e uma macro LINKFLAGS.Você deve usar essas macros para lista opções de compilador e vinculador que se aplicam se você criar uma depurar ou versão final do arquivo executável do aplicativo.Há também uma macro com BIBLIOTECAS onde você listar as bibliotecas requer que seu projeto.

Também usa o makefile! IF,! ELSE,! ENDIF para detectar se você definir um símbolo depurar 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 — use depurar = 0 para as versões finais.As linhas de comando a seguir são equivalentes:

NMAKE 
NMAKE DEBUG=0

Para obter mais informações em makefiles, consulte Referência NMAKE.Consulte também Opções do compilador and the Opções do vinculador.

Consulte também

Referência

Usando cabeçalhos pré-compilados em um projeto