GNU make學習筆記

2022-08-16 03:54:22 字數 2176 閱讀 8407

make是乙個命令工具,它解釋makefile中的規則。

make通過比較對應檔案(規則的目標和依賴,)的最後修改時間,來決定哪些檔案需要更新、那些檔案不需要更新。對需要更新的檔案make就執行資料庫中所記錄的相應命令(在make讀取makefile以後會建立乙個編譯過程的描述資料庫。此資料庫中記錄了所有各個檔案之間的相互關係,以及它們的關係描述)來重建它,對於不需要重建的檔案make什麼也不做

以下幾種檔案在執行make時將會被編譯

makefile是一種檔案,由它來告訴make需要做什麼,該怎麼做。

乙個簡單的makefile描述規則組成:

target... : prerequisites...

command

...

#sample makefile

edit

:main

.o kbd

.o command

.o display

.o \

insert

.o search

.o files

.o utils

.o

cc

-o edit main

.o kbd

.o command

.o display

.o \

insert

.o search

.o files

.o utils

.o

main.o

:main

.c defs

.h

cc

-c main

.c

kbd.o

:kbd

.c defs

.h command

.h

cc

-c kbd

.c

command.o

:command

.c defs

.h command

.h

cc

-c command

.c

display.o

:display

.c defs

.h buffer

.h

cc

-c display

.c

insert.o

:insert

.c defs

.h buffer

.h

cc

-c insert

.c

search.o

:search

.c defs

.h buffer

.h

cc

-c search

.c

files.o

:files

.c defs

.h buffer

.h command

.h

cc

-c files

.c

utils.o

:utils

.c defs

.h

cc

-c utils

.c

clean

:

rm edit main

.o kbd

.o command

.o display

.o \

insert

.o search

.o files

.o utils

.o

GNU Make 學習筆記(一)

gnu make 中有 7 個核心的自動變數 automatic variable 工作目標的檔名 archive檔案成員結構中的檔名元素 第乙個必要條件的檔名 時間戳在工作目標之後的所有必要條件,並以空格隔開這些必要條件 所有必要條件的檔名,並以空格隔開這些檔名,不包含重複的檔名 同 但包含重複的...

使用GNU make 編譯C程式

命令列下編譯c程式的方法有以下幾種 手工執行 編寫乙個指令碼來執行這些重複執行的命令 使用make工具自動生成軟體 例子 專案目錄 makefile 手工編譯命令 該命令的執行步驟如下 gcc c o main.o src main.c gcc c o bar.o src bar.c gcc c o...

gnu make如何找預設target

make只會執行第乙個出現的規則,規則中有多個目標時,只執行第乙個目標。有兩個例外 1.以句號開頭的target會被忽略 2.模板規則會被忽略 如下,前兩個規則不會被認為是預設規則 binodir a c binodir c echo 111111111111 o binodir c echo 22...