Regras do modo de lote
{frompath}.fromext{topath}.toext::
commands
As regras de inferência de lotes fornecem apenas uma invocação da regra de inferência quando comandos n passam por esta regra de inferência de tipos.Sem regras de inferência de tipos de lotes, ele exigiria n comandos a ser invocado.N é o número de dependentes que disparam a regra de inferência de tipos.
Makefiles que contêm regras de inferência de tipos de lotes deve usar NMAKE versão 1.62 ou superior.Para verificar a versão NMAKE, execute a macro _NMAKE_VER disponível com NMAKE versão 1.62 ou superior.Esta macro retorna um string que representa a versão do produto Visual C++.
A diferença sintática somente da regra padrão de inferência de tipos é que a regra de inferência de tipos de lotes é encerrada com dois-pontos duplo (::).
Observação |
---|
A ferramenta que está sendo chamada deve ser capaz de lidar com vários arquivos.A regra de inferência de tipos de lotes deve usar $< que a macro para acessar os arquivos dependentes. |
As regras de inferência de tipos de modo de lote podem acelerar o processo de compilação.Ele é mais rápido para fornecer os arquivos para o compilador em lote, porque o driver do compilador é chamado somente uma vez.Por exemplo, o compilador c e C++ tem melhor desempenho quando estiver manipulando um conjunto de arquivos porque ele pode permanecer memória residente durante o processo.
O exemplo a seguir mostra como usar as regras de inferência de tipos de lotes:
# sample makefile to illustrate batch-mode inference rules
O = .
S = .
Objs = $O/foo1.obj $O/foo2.obj $O/foo2.obj $O/foo3.obj $O/foo4.obj
CFLAGS = -nologo
all : $(Objs)
!ifdef NOBatch
{$S}.cpp{$O}.obj:
!else
{$S}.cpp{$O}.obj::
!endif
$(CC) $(CFLAGS) -Fd$O\ -c $<
$(Objs) :
#end of makefile
NMAKE produz a saída sem regras de inferência de tipos de lotes a seguir:
E:\tmp> nmake -f test.mak -a NOBatch=1
Microsoft (R) Program Maintenance Utility Version 7.00.0000
Copyright (C) Microsoft Corp 1988-2001. All rights reserved.
cl -nologo -Fd.\ -c .\foo1.cpp
foo1.cpp
cl -nologo -Fd.\ -c .\foo2.cpp
foo2.cpp
cl -nologo -Fd.\ -c .\foo3.cpp
foo3.cpp
cl -nologo -Fd.\ -c .\foo4.cpp
foo4.cpp
NMAKE produz o seguinte resultado com as regras de inferência de tipos de lotes:
E:\tmp> nmake -f test.mak -a
Microsoft (R) Program Maintenance Utility Version 7.00.0000
Copyright (C) Microsoft Corp 1988-2001. All rights reserved.
cl -nologo -Fd.\ -c .\foo1.cpp .\foo2.cpp .\foo3.cpp .\foo4.cpp
foo1.cpp
foo2.cpp
foo3.cpp
foo4.cpp
Generating Code...