MAKEFILE【3】-Makefile 静态模式——$(objects): %.o: %.c

文章目录


前言

静态模式

静态模式可以更加容易地定义多目标的规则,可以让我们的规则变的更加有弹性和灵活。语法如下

<targets...>:<target-pattern>:<prereq-patterns...>
	<commands>

一、例程

如果我们的<target-patten>定义成%.o,意思是<targets...>中都是以.o为结尾的变量内容,把<prereq-patterns...>定义成%.c,意思是将<target-pattern>的内容进行二次定义。匹配规则是:取<target-pattern>中的%(也就是将[.o]去掉),并为其加上<prereq-patterns...>中的.c形成新的集合。所以,我们的“目标模式”或是“依赖模式”中都应该有“%”这个字符。

objects = foo.o bar.o
all:$(objects)
$(objects):%.o:%.c
$(CC) -c $(CFLAGS) %< -o %@

例子中,目标从$(objects)中获取,%.o表明要获取以.o为结尾的目标,也就是foo.o bar.o,变量objects的集合的模式。
而依赖模式%c表明取模式%.o%,也就是foo bar,并为其加上.c,变成foo.c bar.c
自动化变量%<表示所有的依赖目标集foo.c bar.c,%@表示目标集foo.o bar.o
展开如下:

	objects = foo.o bar.o
	all: foo.o bar.o
	foo.o:foo.c
		$(CC) -c $(CFLAGS) foo.c -o foo.o
	bar.o:bar.c
		$(CC) -c $(CFLAGS) bar.o -o bar.c
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值