Um Makefile é um arquivo usado pela ferramenta make para automatizar a compilação de programas. Aqui estão as regras padrão e as melhores práticas para escrever um Makefile eficaz:
target: prerequisites command
Regra padrão: O primeiro alvo no Makefile é aquele que será construído por padrão.
Compilando arquivos de origem:
CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme $(TARGET): $(OBJECTS) $(CC) -o $@ $^ %.o: %.c $(CC) $(CFLAGS) -c $
- Phonies: Usa .PHONY para alvos que não são arquivos.
.PHONY: clean clean: rm -f $(OBJECTS) $(TARGET)
- Variáveis: Utiliza variáveis para simplificar o gerenciamento de caminhos e opções.
CC = gcc CFLAGS = -Wall
Gerenciamento de dependências: usa regras e padrões implícitos para reduzir a repetição.
Dependências automáticas: você pode gerar dependências automaticamente para arquivos .o.
-include $(OBJECTS:.o=.d)Exemplo completo
Aqui está um exemplo completo do Makefile:
# Variables CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme # Règle par défaut all: $(TARGET) # Lien de l'exécutable # $@ -> $(TARGET) # $^ -> $(OBJECTS) $(TARGET): $(OBJECTS) $(CC) -o $@ $^ # Compilation des fichiers .c en .o # $ Premier element des pr %.o: %.c $(CC) $(CFLAGS) -c $Boas práticas
Recuo com tabulações: os comandos nas regras devem ser recuados com tabulações, não com espaços.
Código de comentário: usa comentários para explicar seções do Makefile.
Arquivos de grupo: se seu projeto contiver vários arquivos, organize-os em subdiretórios e use variáveis para gerenciar os caminhos.
Use regras implícitas: aproveite as regras integradas do make para evitar reescrever regras comuns.
Por que usar .PHONY?
Evite conflitos: Se existir um arquivo com o mesmo nome de um alvo, make pensará que o alvo está atualizado e não executará comandos associados. .PHONY evita isso.
Melhorias de desempenho: Alvos falsos são sempre considerados "tarefas pendentes", o que pode melhorar a velocidade de execução dos comandos associados.
Eficiência: usar %.o:%c permite que você se beneficie da otimização make para recompilar apenas o que for necessário.
Prático: para projetos maiores, %.o:%c é muito mais adequado.
Um Makefile bem estruturado facilita o gerenciamento de projetos e evita erros de compilação. Seguindo essas regras e práticas recomendadas, você pode criar um Makefile eficiente e de fácil manutenção.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3