Makefile 的 简单入门

#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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值