我有這個Makefile這似乎是工作,但我不知道如何:調用此模式匹配規則的是什麼?
EXECUTABLE=hello
CC=gcc
OBJS = a.o
all: $(EXECUTABLE)
%.o : %.c
$(CC) -o [email protected] -c $<
$(EXECUTABLE): $(OBJS)
$(CC) -o [email protected] $<
我知道前3行是本地定義的,當我輸入「make」將建立在all
目標。現在,從這裏我有點失落......我猜:
- 製作看到
$(EXECUTABLE)
標籤和跳是構建命令 - 它看到
$(OBJS)
標籤,因爲a.o
不存在本地目錄就跳轉到模式匹配規則 - 製作認定
a.c
和運行規則來產生a.o
- 現在做返回到
$(EXECUTABLE)
指揮和運行的.o文件相結合,使「你好」節目 個
問題:
- 是我認爲流動的理解是否正確?
- 此文件中「標籤」的位置是否相關?
- 是否有一些我錯過的GNU文檔證實了我對此工作原理的懷疑?
感謝您的信息。因此,最後一個鏈接告訴我#3的答案(這是標籤**的順序**是重要的)是否正確? – Mike 2013-03-08 15:25:31
它唯一重要的是你不打算提供一個make的目標,比如它給出的「make all」「make clean」等例子 – ThePosey 2013-03-08 15:27:51