一.make/Makefile的介紹
1.理解make/Makefile
編寫Makefile是Linux開發(fā)中一項重要的技能,熟練的運用這個工具能提高編譯效率,幫助你完成大型工程。Makefile帶來的最大好處就是——自動化編譯,一旦將Makefile文件寫好,只需要一個make命令,即可完成預(yù)期的編譯,大大提高了軟件開發(fā)的效率。
二.make/Makefile的使用
1.基本使用
下面我來簡單演示下其功能:
例如現(xiàn)在mycode.c
文件下編寫了如此代碼:
正常情況下我們想要編譯這段代碼,會進行這樣的操作:
如此一行在只需編譯一個文件時倒也不麻煩,但是在以后進行更大規(guī)模的開發(fā)時,一句一文件的編譯就顯得繁瑣。這時就能用上我們自動化構(gòu)建工具make/Makefile了。首先我們在同目錄下創(chuàng)建Makefile文件用來編寫依賴關(guān)系與方法:
其中的clean可以方便刪除生成的文件:
現(xiàn)在我們再想編譯mycode.c
只需輸入命令make
即可:
2.PHONY
接下來在我想要多次編譯時,其給出了這樣的提示:
他說mycode
可執(zhí)行文件已經(jīng)是最新的了,沒有必要再次編譯生成。我們知道文件包括文件內(nèi)容和文件屬性,其中修改時間是文件的重要屬性。而自動化構(gòu)建工具為了提升編譯效率做了規(guī)定:當源文件的修改時間新與可執(zhí)行文件時,說明源文件進行了修改,會重新進行編譯,反之不會。
我們在修改過mycode.c
的內(nèi)容后,利用stat
命令查看文件屬性可以觀察到,修改時間發(fā)生了變化,這是就可以在使用make
再次編譯生成了。
Modify:文件內(nèi)容(修改內(nèi)容會更新)
Change:文件屬性(如文件權(quán)限)
Access:訪問文件
那如果我們不想通過比較時間直接能編譯文件該如何操作呢?這里就要了解到PHONY了
被PHONY修飾的稱為偽目標,其特點就是總是被執(zhí)行的。
PHONY使得某個依賴關(guān)系總是被執(zhí)行。
3.特殊符號拓展
我們可以使用 $^
代替依賴關(guān)系中冒號右邊的文件$@
代表冒號左邊的文件 如果冒號右邊有多個文件時可以用 $<
代表第一個文件:文章來源:http://www.zghlxwxcb.cn/news/detail-519267.html
從上圖我們可以看到輸入make
命令后,會顯示我們編寫的依賴方法,如果我們不想顯示,可以怎么操作呢?
這樣再進行操作時就不會有任何提示了。文章來源地址http://www.zghlxwxcb.cn/news/detail-519267.html
到了這里,關(guān)于構(gòu)建無憂:探索 Linux 項目自動化構(gòu)建神器-make/Makefile的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!