[Linux]Makefile的七次迭代

basic compile procedure

app: add.c div.c main.c mult.c sub.c
	gcc -o app add.c div.c main.c mult.c sub.c
app: add.o  div.o  main.o  mult.o  sub.o
	gcc -o app add.o div.o main.o mult.o sub.o

add.o: add.c
	gcc -c add.c -o add.o

div.o: div.c
	gcc -c div.c -o div.o

main.o: main.c
	gcc -c main.c -o main.o

mult.o: mult.c
	gcc -c mult.c -o mult.o

sub.o: sub.c
	gcc -c sub.c -o sub.o

use self-defined variables and pre-defined variables

target=app

$(target): add.o  div.o  main.o  mult.o  sub.o
	$(CC) -o $@ $^

add.o: add.c
	$(CC) -c $< -o $@

div.o: div.c
	$(CC) -c $< -o $@

main.o: main.c
	$(CC) -c $< -o $@

mult.o: mult.c
	$(CC) -c $< -o $@

sub.o: sub.c
	$(CC) -c $< -o $@

pattern matching

target=app

$(target): add.o  div.o  main.o  mult.o  sub.o
	$(CC) -o $@ $^
  
%.o: %.c
	$(CC) -c $< -o $@

use functions

src=$(wildcard ./*.c)
objs=$(patsubst %.c, %.o, $(src))
target=app

$(target): $(objs)
	$(CC) -o $@ $^
  
%.o: %.c
	$(CC) -c $< -o $@

add clean target

src=$(wildcard ./*.c)
objs=$(patsubst %.c, %.o, $(src))
target=app

$(target): $(objs)
	$(CC) -o $@ $^
  
%.o: %.c
	$(CC) -c $< -o $@
  
clean:
	rm $(objs) -f

change to phony dependency

src=$(wildcard ./*.c)
objs=$(patsubst %.c, %.o, $(src))
target=app

$(target): $(objs)
	$(CC) -o $@ $^
  
%.o: %.c
	$(CC) -c $< -o $@
 
.PHONY:clean
clean:
	rm $(objs) -f
上一篇:echarts图表统计----时间


下一篇:excel工作表中数据多时怎么防止看错行