$@ 目标文件名
$< 第一个依赖文件名
$^ 规则所有依赖文件列表
如果不想让执行语句被打印出来,就在语句前面加上@符号
模式规则
%.o:%.c
后缀规则
.c.o
生成单进程的Makefile
PHONY:clean
OBJECTS = main.o add.o sub.o
CFLAGS = -Wall -g
CC = gcc
app:$(OBJECTS)
$(CC) $(CFLAGS) $^ -o $@
%.o:%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f *.o app
生成多进程的Makefile
.PHONY:clean all
BIN=test1 test2
CFLAGS=-Wall -g
CC=gcc
all:$(BIN)
test1:test1.o
$(CC) $(CFLAGS) $^ -o $@
test2:test2.o
$(CC) $(CFLAGS) $^ -o $@
%.o:%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm $(BIN) *.o