1
我有3個文件:node.h,node.c和main.c中 如果生成文件是自動生成文件生成命令
CFLAGS += -std=c99 -g -Wall
run: node
./node
node: node.o main.o
然後,當我運行make
,這些命令運行
cc -std=c99 -g -Wall -c -o node.o node.c
cc -std=c99 -g -Wall -c -o main.o main.c
cc node.o main.o -o node
./node
我想生成了前兩行,因爲
- 首先,
make
嘗試運行node
但它找不到node
。 - 因此,
make
持有run
並進入到下一個目標,也就是在node
線4 - 然後,
make
看到依賴node.o
和main.o
。在這個時候,它知道必須創建目標文件node.o
和main.o
不過,我不明白爲什麼會產生
cc node.o main.o -o node
第三命令在試圖探索這個謎,我觀察到如果在node
線2被改變爲node1
,會發生
CFLAGS += -std=c99 -g -Wall
run: node1
./node1
node1: node.o main.o
不錯。我的直覺告訴我必須有一些隱含的規則,但我找不到文件。謝謝。 – cuongptnk