makefile同名目標處理

2021-07-09 06:42:13 字數 678 閱讀 9862

如果makefile中有多個相同的目標,它是怎麼執行的?

target1: dep1

target1: dep2

cmd2

這種情況下,這兩個相同的target1會被合併成

target1: dep1 dep2

cmd2

sample01:

#測試多個相同目標,是如何執行的  

all: test

test: a.c a.h

test: a.c

echo "02 target" #flag the second target

echo $^ #print the second target depend

執行結果:

echo a.c a.h

a.c a.h

但如果第一條規則本身也帶乙個命令的話, makefile就無法合併, 給出警告,並用後面的規則替代前面的規則

target1: dep1

cmd1

target1: dep2

cmd2

最後生成的是, 其實就是後一條替代了前一條,然後給出警告

Makefile的特殊目標

makefile的特殊目標 在makefile中,有一些名字,當它們作為規則的目標時,具有特殊含義。它們是一些特殊的目標,gnu make所支援的特殊的目標有 phony 目標 phony 的所有的依賴被作為偽目標。偽目標時這樣乙個目標 當使用make命令列指定此目標時,這個目標所在規則定義的命令 ...

makefile之偽目標

偽目標的目的不是根據依賴關係生成某個目標,而是為了執行某種任務 clean rm o 通過 make clean來使用目標小結 1.因為我們並不是生成clean這個檔案,因此 偽目標 並不是乙個檔案,只是乙個標籤。2.由於 偽目標 不是檔案,所以 make 無法生成它的依賴關係和決定它是否要執行,因...

c 處理同名函式

ypedef void pf goto hell void typedef struct ibm func ibm func typedef struct sun func sun func ibm func fibm sun func fsun fibm.goto hell fsun.goto h...