輕松玩轉(zhuǎn)makefile|基礎(chǔ)知識
1、什么是Makefile
? 在嵌入式軟件開發(fā)領(lǐng)域,使用 make 工具構(gòu)建開發(fā)環(huán)境是非常常見的。而要使用 make 工具,就需要編寫 Makefile 文件來定義一系列規(guī)則,指定需要先編譯、后編譯以及重新編譯的文件。
使用 Makefile 的好處是實現(xiàn)了“自動化編譯”,只需要一個 make 命令,整個工程就能夠自動編譯,大大提高了軟件開發(fā)效率。
2、Makefile的規(guī)則
2.1 命名規(guī)則
? 通常情況下,無論是使用"Makefile"還是"makefile"作為文件名都可以,常見的是使用"Makefile"作為文件名。
當(dāng)然你也可以使用其他名稱(例如"My_makefile")來命名Makefile,但在使用時應(yīng)該加上-f選項,如:
make -f My_makefile
2.2 書寫規(guī)則
目標(biāo) (target):指的是運行make生成什么,可以是執(zhí)行文件,還可以是一個標(biāo)簽
依賴(prerequisites) : 要生成那個 target 所需要的文件或是目標(biāo)
命令(command ):make 需要執(zhí)行的命令
target : prerequisites
command
# 例如
test: test.c
gcc test.c -o test
注意,命令所在的行必須是以 Tab 開頭。很多初學(xué)者容易犯的“低級”錯誤是,用空格代替開頭的Tab 鍵。
3、Makefile的工作原理
3.1 目標(biāo)文件的生成
先檢查生成目標(biāo)文件所需要的依賴文件是否存在,如果不存在,則先按規(guī)則生成依賴文件,再生成目標(biāo)文件。

例如:

目標(biāo)文件是test,依賴所有的 ".o" 文件,如果沒有檢測到"main.o fun.o drv.o" 文件,則根據(jù)".o"的依賴規(guī)則, 讓“main.c fun.c drv.c”文件生成對應(yīng)的“ .o”文件,
之后再生成test文件
3.2 目標(biāo)文件的更新
任何一個依賴文件有更新了,或者依賴文件的時間戳比目標(biāo)文件新,則重新生成目標(biāo)文件
以上是對Makefile基礎(chǔ)知識的介紹,后面的文章將會結(jié)合例子,來介紹Makefile的具體用法。

快速了解Makefile的工作原理及基本規(guī)則。

浙公網(wǎng)安備 33010602011771號