◆ make可被用來維護,更新和重新生成計算機程序組。
◆ 對於由大量程序模塊所構成項目,其用途更爲明顯,它能夠簡化目標文件或可執行程序的生成過程,有助於用戶模塊化地、一致性地編譯程序。
◆ 只有當一個目標有相關文件是比目標更新的時候,它才被更新,所以能提高效率。
可方便地維護多個文件生成的文檔。
二:描述文件
[目的名列表]: [依賴列表]
[TAB]命令(組)
[TAB]命令(組)
……
備註:
1 目的名(或列表)必須寫在每行行首(可以用空格開頭),且後必須跟冒號,多個目的名之間空格分開,表明一系列各自獨立的目的是用相同的依賴列表和規則生成的。
2 依賴列表必須緊跟在冒號之後,可缺省。
3 TAB開始的後續行作爲命令行,它組成了規則。同一行的多個命令用分號;隔開。注意,TAB不能用空格代替。
4 冒號: 是目的列表終結符,它標誌着目的列表的結束。跟在冒號之後的依賴列表將被添加到目的的依賴關係集中。
5 註釋用#號和換行號所包圍。
例子:將test1,test2,test3做成一個makefile文件,用test調用測試,
***************test1.c************
#include "stdio.h"
void test1()
{
printf("test1/n");
}
***************test2.c************
#include "stdio.h"
void test2()
{
printf("test2/n");
}
***************test3.c************
#include "stdio.h"
void test3()
{
printf("test3/n");
}
***************test.c************
#include "stdio.h"
void main()
{
test1();
test2();
test3();
}
***************makefile************
相當於控制編譯執行過程,按以下順序執行
test: test.o test1.o test2.o test3.o
cc test.o test1.o test2.o test3.o -o test
test.o: test.c
cc -c test.c
test1.o: test.c
cc -c test1.c
test2.o: test.c
cc -c test2.c
test3.o: test.c
cc -c test3.c
執行:1.make
2 ./test