Makefile 知識點記錄

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是順序依賴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章