#calc:main.c add.c sub.c mul.c div.c
#命令
#gcc main.c add.c sub.c mul.c div.c -o calc
#-----------------------------------
#makefile有多条规则时,默认第一条为最终的规则,其他为第一条服务
#此编译只会编译改动过的文件
#calc:main.o add.o sub.o mul.o div.o
#gcc main.o add.o sub.o mul.o div.o -o calc
#main.o:main.c
# gcc -c main.c
#add.o:add.c
# gcc -c add.c
#mul.o:mul.c
# gcc -c mul.c
#sub.o:sub.c
# gcc -c sub.c
#div.o:div.c
# gcc -c div.c
#----------------------------------
# $< 当前规则中的第一个依赖
# $@ 当前 目标
# $^ 当前 所有依赖
#obj=main.o add.o sub.o mul.o div.o
#target=calc
#$(target):$(obj)
# gcc $(obj) -o $(target)
#%.o:%.c
# gcc -c $< -o $@
#-----------------------------------
target=calcu
#查找目录下的类型的返回值
src=$(wildcard calc/*.c)
#匹配替换,将src中的.c替换为.o
obj=$(patsubst calc/%.c, calc/%.o,$(src))
CC=gcc
CPPFLAGS=-I
$(target):$(obj)
$(CC) $(obj) -o $(target)
%.o:%.c
$(CC) -c $< -o $@
#phony 不会因为同名的文件而失效
#在命令中加 - 会忽略此行命令,继续执行。不加 - 会 命令执行失败 直接退出
.PHONY:clean:
# - mkdir /test - 会忽略继续执行下面的命令
rm $(obj) $(target)
hello:
echo "hello, makefile"
Makefile 的 简单入门
于 2022-01-26 14:42:26 首次发布