新聞中心
有時(shí),我們需要開發(fā)庫(kù)或者可執(zhí)行文件,我們需要一個(gè) Makefile 文件來(lái)幫助我們管理相關(guān)文件并進(jìn)行編譯。linux 下的 Makefile 寫法讓許多開發(fā)者頭疼,尤其是新手。接下來(lái),我將為你介紹如何搞定 Linux 下的 Makefile,以及簡(jiǎn)單理解其原理。

雖然 Makefile 看上去很復(fù)雜,但它的原理很簡(jiǎn)單。Makefile 被稱為“規(guī)則文件”,其中列出了每個(gè)步驟的執(zhí)行時(shí)間和順序,以及哪些文件需要編譯和鏈接,這些信息會(huì)被 make 命令捕獲,以便進(jìn)行操作。
編寫 Makefile 時(shí),首先應(yīng)識(shí)別文件,如源代碼、頭文件接口,以及目標(biāo)文件(如可執(zhí)行文件或庫(kù)文件)。定義了所有文件后,接下來(lái)需要定義規(guī)則來(lái)處理文件。
基本語(yǔ)法如下:
target:prerequisites(先決條件)
command
上面代碼中,target 是要生成的文件,prerequisites 是相關(guān)的文件,廚師命令是以 tab 開頭。比如,我們有一個(gè) main.o 文件,之前文件有 main.c 和 head.h 文件,我們的 Makefile 會(huì)如下所示:
main.o: main.c head.h
gcc-c -g main.c -I includes -o main.o
上面的 Makefile 語(yǔ)法表明,要生成 main.o 文件,需要 main.c 和 head.h 文件,以及參數(shù) -I 用于包含頭文件目錄(它可以更改),該語(yǔ)句以 tab 開頭,所以不會(huì)被當(dāng)做語(yǔ)句,而是作為命令。
此外,我們還可以為源文件添加依賴庫(kù)文件,比如 libxxx.a,以及大部分選項(xiàng),要添加可執(zhí)行文件,只需要將其名稱添加到 target 標(biāo)號(hào)后面的清單中即可。
當(dāng)所有的文件和規(guī)則都定義好后,需要在終端運(yùn)行 make 命令,這時(shí) make 會(huì)根據(jù) Makefile 運(yùn)行編譯和鏈接。
總之,Linux 下的 Makefile 非常有用, make 命令可以幫助我們構(gòu)建工程,只需要簡(jiǎn)單的幾行工作即可完成一個(gè)工程構(gòu)建,通過(guò)添加規(guī)則以及 target 的名稱,我們甚至可以完成更復(fù)雜的構(gòu)建工作。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章標(biāo)題:簡(jiǎn)單搞定Linux下的Makefile文件(linuxmake文件)
URL標(biāo)題:http://m.fisionsoft.com.cn/article/djodoge.html


咨詢
建站咨詢
