首頁歷史 > 正文

Makefile 規則

2022-01-02由 Linux系統學習 發表于 歷史

Makefile 規則

重點已加粗

makefile 是一個文字檔案,通常放在原始碼目錄樹的頂層目錄中,檔名可以是makefile 或者 Makefile 。

makefile 的內容主要是一組規則(rules),規則用來描述軟體包中檔案之間的更新依賴關係,以及完成更新所需的命令。makefile 規則的一般形式如下:

target: dependency1 dependency2 。。。

command1

command2

Makefile 規則

具體地說,每條規則包含以下內容:

目標(target)

每條規則都有一個目標,它通常是要求 make 建立或更新的檔案,如目標“hello”表示要生成可執行檔案 hello ,目標“hello。o”表示要生成目的碼檔案 hello。o 。目標也可以是要求 make 完成的某個動作,如目標“clean”通常表示清楚編輯過程的中間檔案,目標“install”表示安裝軟體等。總之,目標就是該規則所要達到的目的。

依賴(dependency)

每條規則都有一個或多個依賴,依賴是實現規則的目標所要依賴的檔案,通常是編譯所需的原始檔或目的碼檔案。“目標:依賴……”描述了程式碼檔案之間的依賴關係。通常的依賴關係是:

可執行檔案依賴於若干個目的碼檔案,目的碼檔案依賴於若干個原始碼檔案,原始碼檔案通常不再依賴於任何檔案。

例如,生成可執行檔案 hello 需要依賴目的碼檔案 hello。o ,而生成目的碼檔案 hello。o 需要依賴原始碼檔案 hello。c 。

規則的依賴關係是判斷目標檔案是否需要更新的依據。如果目標檔案較所有依賴檔案都新(即目標檔案的修改時間新於所有依賴檔案的修改時間),則該目標無需更新;反之,如果至少有一個依賴檔案較目標檔案新,則該目標就需要被更新。

依賴關係具有層次性,一個規則的依賴可能是另一個規則的目標。在實現本規則的目標時,先要實現依賴的目標。

命令(command)

每個規則都有一系列命令。

命令是實現該規則的目標所要執行的操作。

最常見的命令是編譯命令,但也可以是任何Shell 命令。在編寫命令序列時可以使用 Shell 的許多程式設計特性,如定義和使用 Shell 變數、進行命令組合、條件判斷等。需要特別注意的是,

makefile 的語法規定每個命令列的起始字元必須是製表符 Tab

Makefile 規則

謝謝欣賞!

頂部