Geralmente, quando temos muitos arquivos de projeto, é mais problemático usar a ferramenta gcc para digitar diretamente o comando de compilação, então a vantagem de escrever makefile vem.Você só precisa digitar make para compilar a cada vez.
Aqui está uma versão universal, não importa quantos arquivos no diretório atual, você só precisa fazer, sem modificar o makefile, gerar diretamente o programa executável principal
O seguinte é o makefile
#Cadeia de ferramentas de compilação Cross # CC = arm-linux-gnueabihf-gcc
CC = gcc
# Link library
CFLAGS = -lm -lpthread
#Get c file SrcFiles = $ (wildcard * .c)
#Use a função de substituição para obter arquivos .o OBJS = $ (patsubst% .c,%. O, $ (SrcFiles))
todos: principal
principal: $ (OBJS)
$ (CC) -o $ @ $ ^ $ (CFLAGS)
% .o:%. c
$ (CC) -c $ <$ (CFLAGS)
.PHONY: limpar tudo
limpo:
rm -rf $ (OBJS)
rm -rf main
Suplemento aqui
A função curinga é obter a
função patsubst do arquivo especificado , que tem uma função de substituição.
$ (Arquivos), pegue o valor da variável Arquivo.
$ @ arquivo de destino
$ ^ todos dependentes
$ <primeiro dependente
$? primeira mudança dependente