概述
main: main.c
gcc main.c -o main
在源代碼所在目錄新建一個(gè)Makefile文件,文件內(nèi)容為上述內(nèi)容,保存后在當(dāng)前目錄命令行下輸入make,就可以得到編譯后的可執(zhí)行文件main
上述命令解釋如下:
每一個(gè)Makefile主體都是有若干個(gè)規(guī)則模塊組成:表明輸出的目標(biāo)(本例為main文件),輸出目標(biāo)的依賴對(duì)象(本例為main.c文件),生成目標(biāo)需要執(zhí)行的命令(本例為gcc main.c -o main),具體格式為:
目標(biāo)/文件: 依賴文件列表
(Tab)命令
注意:
- 命令中前面(TAB)表示用戶按了TAB鍵產(chǎn)生的空白區(qū)域。
- 目標(biāo)通常是要產(chǎn)生的文件名稱,也可以是一個(gè)執(zhí)行的動(dòng)作名稱如clean或cleanall等
- 依賴文件列表是用來(lái)輸入從而產(chǎn)生目標(biāo)的文件,一個(gè)目標(biāo)經(jīng)常有幾個(gè)依賴文件,文件名稱之間以空白隔開,如
main: test1.c test2.c - 命令是make執(zhí)行的動(dòng)作,一個(gè)規(guī)則可以含有幾個(gè)命令,每個(gè)命令占一行。
- 每個(gè)命令行前面必須是一個(gè)TAB字符,即命令行第一個(gè)字符是TAB。
- 如果一個(gè)依賴關(guān)系發(fā)生變化,則需要規(guī)則調(diào)用命令對(duì)相應(yīng)依賴和服務(wù)進(jìn)行處理,從而更新或創(chuàng)建目標(biāo)。
- 編譯并生成執(zhí)行代碼并不是編寫make規(guī)則的唯一事情。Makefile文件可讓make完成編譯程序以外的任務(wù)如刪除中間文件和可執(zhí)行文件等。exec_file為可執(zhí)行文件,中間文件是".o"結(jié)尾的文件,代碼如下:
clean:
$ rm *.o exec_file