鍍金池/ 教程/ Java/ Makefile
Makefile 定義依賴性
Makefile 定義規(guī)則
Makefile 文件重新編譯
Makefile 自定義后綴規(guī)則
為什么需要Makefile?
Makefile 指令
Makefile
Makefile 宏
Makefile 其他功能
Makefile include
makefile 例子

Makefile

makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進行更復(fù)雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。
Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關(guān)系并自動維護編譯工作。而makefile 文件需要按照某種語法進行編寫,文件中需要說明如何編譯各個源文件并連接生成可執(zhí)行文件,并要求定義源文件之間的依賴關(guān)系。makefile 文件是許多編譯器--包括 Windows NT 下的編譯器--維護編譯信息的常用方法,只是在集成開發(fā)環(huán)境中,用戶通過友好的界面修改 makefile 文件而已。
UNIX 系統(tǒng)中,習(xí)慣使用 Makefile 作為 makefile 文件。如果要使用其他文件作為 makefile,則可利用類似下面的 make 命令選項指定 makefile 文件。
一個文件,指示程序如何編譯和鏈接程序。makefile文件的默認名稱是名副其實的Makefile,但可以指定一個命令行選項的名稱。
 
make程序有助于您在開發(fā)大型程序跟蹤整個程序,其中部分已經(jīng)改變,只有那些編譯自上次編譯的程序,它已經(jīng)改變了部分。

關(guān)于編譯階段
 
編譯一個小的C程序至少需要一個單一的文件.h文件(如適用)。雖然命令執(zhí)行此任務(wù)只需CC file.c中,有3個步驟,以取得最終的可執(zhí)行程序,如下所示:
 
編譯階段:所有的C語言代碼.c文件中被轉(zhuǎn)換成一個低級語言匯編語言;決策.s文件。
 
匯編階段:前階段所作的匯編語言代碼,然后轉(zhuǎn)換成目標代碼的代碼片段,該計算機直接理解。目標代碼文件.o 結(jié)束。
 
鏈接階段:編譯程序涉及到鏈接的對象代碼的代碼庫,其中包含一定的“內(nèi)置”的功能,如printf的最后階段。這個階段產(chǎn)生一個可執(zhí)行程序,默認情況下,這是名為a.out。