Escreva Makefile para compilar todos os arquivos .c em um diretório em arquivos executáveis

O processo de escrever um Makefile é o seguinte:

  1. Definir variáveis: defina variáveis ​​como compilador e opções de compilação.
  2. Definir arquivo de destino: Defina o nome do arquivo de destino.
  3. Definir arquivos de origem: Defina todos os arquivos de origem.
  4. Definir regras: Defina as regras para compilar cada arquivo de origem em um arquivo objeto.
  5. Definir pseudo-destino: Define um pseudo-destino que limpa arquivos objeto e outros arquivos intermediários.

CC = gcc
CFLAGS = -Wall -Wextra -Werror

SOURCES := $(wildcard *.c)
TARGETS := $(patsubst %.c, %, $(SOURCES))

all: $(TARGETS)

%: %.c
	$(CC) $(CFLAGS) $< -o $@

.PHONY: clean
clean:
	rm -f $(TARGETS)
  • CC Define o compilador usado, gcc é usado aqui.
  • CFLAGS As opções de compilação são definidas e algumas opções de aviso são habilitadas aqui.
  • SOURCES é uma lista de todos os arquivos de origem, usando o curinga *.cpara localizar todos os arquivos que terminam no diretório atual. .c
  • TARGETSé uma lista de todos os arquivos executáveis, usando a função patsubst para substituir caminhos de arquivos de origem por caminhos de arquivos executáveis ​​(com extensões de arquivo removidas).
  • all: $(TARGETS)Indica que tudo depende de todos os arquivos executáveis, e todos os arquivos executáveis ​​podem ser gerados digitando na linha de comando. $ make
  • %: %.c Indica uma regra, .c compila um arquivo em um arquivo executável correspondente e o armazena em um arquivo com o mesmo nome do arquivo de origem.
  • .PHONY: cleanIndica que clean é um pseudo-alvo, não um arquivo real, e $ make cleantodos os arquivos executáveis ​​podem ser excluídos digitando na linha de comando.

Acho que você gosta

Origin blog.csdn.net/FLM19990626/article/details/130983496
Recomendado
Clasificación