person:main.o person.o
g++ -o $@ $^
%.o:%.cpp
g++ -c -o $@ $<
clean:
rm -rf *.o person
Makefile基本語法:
目標:依賴
注意:在目標:依賴下面必須是TAB鍵
person目標依賴main.o 和 person.o
main.o目標依賴main.cpp
main.o:main.cpp
person.o目標依賴person.cpp
person.o:person.cpp
main.o 和 person.o的目標可以用通配符%來替代,減少重複
%.o目標依賴%.cpp
%.o:%.cpp
常用的預定義變量:
$@ 目標的完整名稱。
$^ 所有的依賴文件,以空格分開,不包含重複的依賴文件。
$< 第一個依賴文件的名稱。
$* 不包含擴展名的目標文件名稱。
$+ 所有的依賴文件,以空格分開,並以出現的先後爲序,可能包含重複的依賴文件。
$? 所有的依賴文件,以空格分開,這些依賴文件的修改日期比目標的創建日期晚。
$% 如果目標是歸檔成員,則該變量表示目標的歸檔成員名稱。