makefile文件编写_九图记住Makefile
本文首次編輯時(shí)間2020.07.20
最后編輯時(shí)間2020.08.03
歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)附上原文鏈接
參考:
GNU make說明文檔:https://www.gnu.org/software/make/manual/html_node/index.html#SEC_Contents
【跟我一起寫Makefile】:https://seisman.github.io/how-to-write-makefile/
前言
Makefile的撰寫只是為了自動(dòng)化流程,如果是Windows 程序開發(fā)者,IDE(Integrated Development Environment)已經(jīng)集成好了編譯工具和make工具,不需要我們?cè)偈止ぞ帉慚akefile。但是在嵌入式開發(fā)中,我們都會(huì)在Linux平臺(tái)上進(jìn)行開發(fā)然后交叉編譯,這時(shí)就需要我們自己手工完成編譯過程,所以Makefile必不可少。說開又說,學(xué)習(xí)Makefile是嵌入式開發(fā)者的必經(jīng)之路,也只有清楚整個(gè)項(xiàng)目的編譯過程,才能對(duì)嵌入式開發(fā)有更好的理解。本文不適合Makefile從零開始的開發(fā)者。這里只是以圖表的形式對(duì)Makefile的編寫做知識(shí)歸納,也方便自己以后復(fù)習(xí)和查找相關(guān)資料。
一、解釋編譯和鏈接
以C/C++代碼為例,我們編寫完代碼后變成可執(zhí)行文件需要經(jīng)過編譯和鏈接階段。這個(gè)過程如果在Windows下是由IDE內(nèi)置的編譯器和鏈接器完成的。但是在Unix系統(tǒng)我們需要自己處理這個(gè)過程。以圖解表示如下
編譯和鏈接二、Make的工作流程
Make的工作流程在 Makefile 中,規(guī)則的順序是很重要的,因?yàn)?#xff0c;Makefile 中只應(yīng)該有一個(gè)最終目標(biāo),
其它的目標(biāo)都是被這個(gè)目標(biāo)所連帶出來的,所以一定要讓 make 知道你的最終目標(biāo)是什么。
一般來說,定義在 Makefile 中的目標(biāo)可能會(huì)有很多,但是第一條規(guī)則中的目標(biāo)將被確立為
最終的目標(biāo)。如果第一條規(guī)則中的目標(biāo)有很多個(gè),那么,第一個(gè)目標(biāo)會(huì)成為最終的目標(biāo)。 make所完成的也就是這個(gè)目標(biāo)
三、書寫依賴規(guī)則
make實(shí)際上只是檢查Makefile里面的依賴關(guān)系(規(guī)則),然后決定哪一條規(guī)則下面的命令會(huì)被執(zhí)行。命令執(zhí)行成功與否make并不管
Makefile的規(guī)則書寫辦法四、書寫命令
當(dāng)make檢查到某一條規(guī)則里,依賴文件比目標(biāo)文件更新的情況時(shí),就會(huì)執(zhí)行該規(guī)則下的命令
Makefile命令的書寫五、使用變量
Makefile中的變量使用得最多最頻繁的,可能是自動(dòng)化變量了
Makefile中的自動(dòng)化變量六、使用函數(shù)
字符串處理函數(shù)文件名操作函數(shù)邏輯類函數(shù)總結(jié)
以上是生活随笔為你收集整理的makefile文件编写_九图记住Makefile的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银杏的功效与作用
- 下一篇: markdown 字体颜色_一文搞定Ma