gnu make如何找默认target

make只会执行第一个出现的规则,规则中有多个目标时,只执行第一个目标。

有两个例外:

1.以句号开头的target会被忽略

2.模板规则会被忽略

如下,前两个规则不会被认为是默认规则:

BINODIR=a
.c: $(BINODIR).c
	echo "111111111111"

%.o: $(BINODIR).c
	echo "22222222222"

a.out:a.c
	gcc a.c -o a.out

至于模板规则可以理解成就是target中带%的:

类似如下第一个hilink_hislip并不是规则,而是在显示执行下面的hilink_hislip规则时会对变量赋值:

APP_USR_TARGET=0
APP_HISLIP_TARGET=1
APP_TARGET_NAME=$(APP_USR_TARGET)
hilink_hislip:APP_TARGET_NAME=5

all:a.c
	echo $(APP_TARGET_NAME)
	gcc a.c -o a.out

hilink_hislip:
	echo $(APP_TARGET_NAME)

.PHONY:t1
t1:
	echo "666666"

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值