Executando NMAKE
Sintaxe
NMAKE
[option ...] [macros ...] [targets ...] [@
command-file ...]
Comentários
O NMAKE compila somente targets especificados ou, quando nenhum for especificado, o primeiro destino no makefile. O primeiro destino do makefile pode ser um pseudotarget que compila outros destinos. O NMAKE usa makefiles especificados com /F
, ou se /F
não for especificado, o arquivo Makefile do diretório atual. Se nenhum makefile for especificado, ele usará regras de inferência para criar targets de linha de comando.
O arquivo de texto command-file (ou arquivo de resposta) contém a entrada de linha de comando. Outras entradas podem preceder ou seguir @command-file. Um caminho é permitido. No command-file, as quebras de linha são tratadas como espaços. Coloque as definições de macro entre aspas se elas contiverem espaços.
Opções de NMAKE
As opções do NMAKE estão descritas na tabela a seguir. As opções são precedidas por uma barra (/
) ou um traço (-
) e não diferenciam maiúsculas de minúsculas. Use !CMDSWITCHES
para alterar as configurações de opção em um makefile ou em Tools.ini
.
Opção | Finalidade |
---|---|
/A |
Força a compilação de todos os destinos avaliados, mesmo que não estejam desatualizados em comparação com os dependentes. Não força builds de destinos não relacionados. |
/B |
Força o build mesmo que os carimbos de data/hora sejam iguais. Recomendado apenas para sistemas rápidos (resolução de dois segundos ou menos). |
/C |
Suprime a saída padrão, incluindo erros ou avisos NMAKE não fatais, carimbos de data/hora e mensagem de direitos autorais do NMAKE. Suprime avisos emitidos por /K . |
/D |
Exibe carimbos de data/hora de cada destino e dependente avaliado e exibe uma mensagem quando um destino não existe. Útil com /P para depurar um makefile. Use !CMDSWITCHES para definir ou limpar /D para uma parte do makefile. |
/E |
Faz com que variáveis de ambiente substituam definições de macro do makefile. |
/ERRORREPORT [ NONE | PROMPT | QUEUE | SEND ] |
Preterido. Relatório de configurações de controle do WER (Relatório de Erros do Windows). |
/F filename |
Especifica filename como um makefile. Espaços ou tabulações podem preceder o filename. Especifique /F uma vez para cada makefile. Para fornecer um makefile da entrada padrão, especifique um traço (- ) para filename e finalize a entrada de teclado com F6 ou CTRL+Z. |
/G |
Exibe os makefiles incluídos com a diretiva !INCLUDE . Para obter mais informações, confira Diretivas de pré-processamento do Makefile. |
/HELP , /? |
Exibe um breve resumo da sintaxe de linha de comando do NMAKE. |
/I |
Ignora códigos de saída de todos os comandos. Para definir ou limpar /I para uma parte do makefile, use !CMDSWITCHES . Para ignorar códigos de saída para parte de um makefile, use um modificador de comando traço (- ) ou .IGNORE . Substitui /K se ambos forem especificados. |
/K |
Continua criando dependências não relacionadas, se um comando retornar um erro. Também emite um aviso e retorna um código de saída 1. Por padrão, o NMAKE será interrompido se qualquer comando retornar um código de saída diferente de zero. Os avisos de /K são suprimidos por /C ; o /I substitui /K se ambos forem especificados. |
/N |
Exibe, mas não executa comandos; os comandos de pré-processamento são executados. Não exibe comandos em chamadas recursivas do NMAKE. Útil para depurar makefiles e verificar carimbos de data/hora. Para definir ou limpar /N para uma parte do makefile, use !CMDSWITCHES . |
/NOLOGO |
Suprime a mensagem de direitos autorais do NMAKE. |
/P |
Exibe informações (definições de macro, regras de inferência, destinos, lista de .SUFFIXES ) para a saída padrão e, em seguida, executa o build. Se não existir nenhum makefile nem um destino de linha de comando, ele exibirá apenas informações. Use com /D para depurar um makefile. |
/Q |
Verifica carimbos de data/hora de destinos; não executa o build. Retorna um código de saída zero se todos os destinos estiverem atualizados e um código de saída diferente de zero se algum destino estiver desatualizado. Os comandos de pré-processamento são executados. Útil ao executar o NMAKE por meio de um arquivo em lote. |
/R |
Limpa a lista .SUFFIXES e ignora regras de inferência e macros definidas no arquivo Tools.ini ou que são predefinidas. |
/S |
Suprime a exibição de comandos executados. Para suprimir a exibição em parte de um makefile, use o modificador de comando @ ou .SILENT . Para definir ou limpar /S para uma parte do makefile, use !CMDSWITCHES . |
/T |
Atualiza carimbos de data/hora de destinos da linha de comando (ou do primeiro destino do makefile) e executa comandos de pré-processamento, mas não executa o build. |
/U |
Deve ser usado em conjunto com /N . Despeja arquivos NMAKE embutidos para que a saída /N possa ser usada como um arquivo em lote. |
/X filename |
Envia a saída de erro do NMAKE para filename em vez de um erro padrão. Espaços ou tabulações podem preceder o filename. Para enviar a saída de erro para a saída padrão, especifique um traço (- ) para filename. Não afeta a saída de comandos para erro padrão. |
/Y |
Desabilita as regras de inferência do modo de lote. Quando essa opção está selecionada, todas as regras de inferência do modo de lote são tratadas como regras de inferência regulares. |
Tools.ini e NMAKE
O NMAKE lê Tools.ini
antes de ler makefiles, a menos que /R
seja usado. Ele procura Tools.ini
primeiro no diretório atual e, em seguida, no diretório especificado pela variável de ambiente INIT. A seção de configurações do NMAKE no arquivo de inicialização começa com [NMAKE]
e pode conter qualquer informação do makefile. Especifique um comentário em uma linha separada começando com um sinal de número (#
).
Códigos de saída de NMAKE
O NMAKE retorna os seguintes códigos de saída:
Código | Significado |
---|---|
0 | Nenhum erro (possivelmente um aviso) |
1 | Build incompleto (emitido somente quando /K é usado) |
2 | Erro do programa, possivelmente causado por um destes problemas: – Um erro de sintaxe no makefile – Um erro ou um código de saída de um comando – Uma interrupção por parte do usuário |
4 | Erro do sistema – sem memória |
255 | O destino não está atualizado (emitido somente quando /Q é usado) |