Sdílet prostřednictvím


Ukázkový soubor pravidel pro PCH

Následující soubor pravidel používá makra a!IF!ELSE!Struktura řízení toku příkaz ENDIF zjednodušit jeho přizpůsobení projektu.

# 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

Kromě UNSTABLEHDRS, STABLEHDRS a AUTONOMNÍHO makra zobrazená na obrázku "Konstrukce z Makefile, že používá předkompilovaný soubor hlaviček" v Soubory PCH v procesu sestavení, tato makefile obsahuje makra CLFLAGS a LINKFLAGS makra.Tato makra je nutné použít k vytvoření seznamu kompilátoru a možnosti propojovacího programu, které se vztahují, zda je sestavení ladění nebo konečnou verzi spustitelného souboru aplikace.K dispozici je také makro KNIHOVEN kde seznam knihoven váš projekt vyžaduje.

Také používá soubor pravidel!IF!ELSE!ENDIF ke zjištění, zda příkaz NMAKE definovat symboly pro ladění:

NMAKE DEBUG=[1|0]

Tato funkce umožňuje použít stejný soubor pravidel během vývoje a pro konečné verze programu – použití DEBUG = 0 pro konečné verze.Příkazovém řádku následující příkazy jsou rovnocenné:

NMAKE 
NMAKE DEBUG=0

Další informace o soubory pravidel, viz NMAKE odkaz.Viz také Možnosti kompilátoru a Možnosti propojovacího programu.

Viz také

Referenční dokumentace

Použití předkompilovaných hlaviček v projektu