Makefile 知识点记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dongkun152/article/details/86700621

Makefile 知识点记录

1. 依赖类型:normal Prerequisites,order-only prerequisites
normal Prerequisites:标准依赖具有两层含义的声明,一 它声明了方法运行的顺序,所有依赖的的方法必须在对象的方法运行之前运行完。二 它声明了对象的依赖关系,如果有任何依赖比对象新,那么目标对象就认为是过期的,必须要重建。
order-only prerequisites:顺序依赖,只取标准依赖的声明一。它只声明顺序关系。不会因为依赖的时间戳的更新而重建。
标准依赖和顺序依赖的声明方式如下

targets : normal-prerequisites | order-only-prerequisites

依赖之间用管道符号分隔,左边的是标准依赖,右边的是顺序依赖。
例子:

OBJS := date_test

.phony: all clean

all: $(OBJS)

$(OBJS): date.c  | version
	$(CC) -o $@ $<

version:
	date | xargs echo > version

clean:
	rm -f $(OBJS) version

上面的例子中,编译对象依赖于version,但是不会因为向version中手动添加记录而导致后边的重新编译。 date.c 是标准依赖, version是顺序依赖。

猜你喜欢

转载自blog.csdn.net/dongkun152/article/details/86700621