Regras do modo de lotes
{frompath}.fromext{topath}.toext::
commands
Regras de inferência do modo de lotes fornecem apenas uma invocação da regra de inferência ao n comandos passam por esta regra de inferência de tipos. Sem regras de inferência do modo de lotes, ele exigiria n comandos a ser invocado. N é o número de dependentes acionar a regra de inferência de tipos.
Makefiles contêm regras de inferência do modo em 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 do modo 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 do modo em lotes deve usar $< como a macro para acessar arquivos dependentes. |
As regras de inferência do modo em lotes podem acelerar o processo de compilação. É 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 residente durante o processo de memória.
O exemplo a seguir mostra como usar as regras de inferência do modo 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 do modo 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 do modo 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...