Makefile:(實驗)多個目標匹配時會采用最完整匹配的目標
阿新 • • 發佈:2019-04-03
efi pre 發現 file 最完整 現象 .PHONY ech 測試的
結論源自實驗測試,如果有疏漏希望指出
當Makefile中存在多個匹配的目標時,Makefile會采用哪個匹配的目標呢?
測試的Makefile如下:
.PHONY: all clean quick_sort all: quick_sort bubble_sort #目標1 quick_sort: @echo "matching [email protected]" @echo 'in quick_sort' #目標2 %: @echo "matching [email protected]" @echo 'in %' #目標3 %_sort: @echo "matching [email protected]" @echo 'in %_sort' clean: $(RM) *.o bubble_sort quick_sort
測試結果如下:
$make
matching quick_sort
in quick_sort
matching bubble_sort
in %_sort
在實驗中,all
目標有兩個依賴的子目標quick_sort
和bubble_sort
。
在匹配quick_sort
子目標時,目標1-3都符合,按實驗結果,最終執行的是目標1。
在匹配bubble_sort
子目標時,目標2-3都符合,按實驗結果,最終執行的是目標3。
為了避免從上往下順序匹配的可能,在匹配quick_sort
時,特地把最完整匹配放在目標1。
按上述實驗的現象,我們可以發現:
完整匹配 > 通配符半匹配 > 完全通配符匹配
Makefile:(實驗)多個目標匹配時會采用最完整匹配的目標