1. 程式人生 > >【二】makefile 進階

【二】makefile 進階

特殊字元

*: 萬用字元
*.c 表示所有c檔案。
    %: 用於替換關鍵詞
    %.o: %.c
test.o與該規則匹配,即 test.o: test.c

[email protected]:表示目標的名字,包括副檔名
$^:表示依賴的所有檔案,以空格隔開,不重複
$<:表示依賴的第一個檔案
$+:表示所有依賴檔案,空格隔開,可以重複
$?:依賴列表中更新過的檔案

shell命令的中的特殊字元

@ 執行shell命令時會回顯命令本身,使用@就不會回顯了,例如:

test: test.o
    #使用@,原命令就不會會回顯
    echo "in test" #回顯
    @echo "out test" #不會回顯

輸出:

#test @ #回顯內容
echo "in test" #回顯內容
in test #命令輸出
out test #命令輸出

-: make過程中出錯會終止編譯,在命令列前加-,則不會終止,常用配合rm和mkdir等命令

clean:
-rm -rf *.o

+: 命令列前加上加號+的含義,表明在使用 make -n 命令的時候,其他行都只是顯示命令而不執行,只有+ 行的才會被執行。