您好,登錄后才能下訂單哦!
這篇文章主要為大家分析了Linux系統(tǒng)中makefile的原理是什么的相關(guān)知識點,內(nèi)容詳細易懂,操作細節(jié)合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學(xué)習(xí)“Linux系統(tǒng)中makefile的原理是什么”的知識吧。
一個Linux系統(tǒng)程序員不會使用GNU make來構(gòu)建和管理自己的工程可是說是一個不合格的程序員。那么Makefile應(yīng)該怎樣去學(xué)習(xí)呢?
Makefile 可以簡單的認(rèn)為是一個工程文件的編譯規(guī)則,描述了整個工程的編譯和鏈接等規(guī)則。
其中包含了那些文件需要編譯,那些文件不需要編譯,那些文件需要先編譯,那些文件需要后編譯,那些文件需要重建等等。
編譯整個工程需要涉及到的,在 Makefile 中都可以進行描述。換句話說,Makefile 可以使得我們的項目工程的編譯變得自動化,不需要每次都手動輸入一堆源文件和參數(shù)。
makefile
Makefile
規(guī)則的三個要素:目標(biāo)、依賴、命令
makefile可以有多個規(guī)則,當(dāng)?shù)谝粋€規(guī)則的的命令在執(zhí)行的時候發(fā)現(xiàn)沒有相應(yīng)的依賴,就在下面的規(guī)則中找。最上面的規(guī)則的目標(biāo)是終極目標(biāo)一定寫在最上面,也就是最后要生成的文件。
多文件Makefile的更新原理(基于時間)
自定義變量obj=main.o add.o sub.o引用的時候直接使用 $(obj)
自動變量()規(guī)則中的第一個依賴@:規(guī)則中的目標(biāo)$^: 規(guī)則中所有的依賴
模式自動匹配 %子規(guī)則中:
:
makefile維護的變量(通常大寫,自己可以修改)CC:cc(即gcc)APPFLAGS:預(yù)處理使用的選項CFLAGS:編譯的時候使用的選項LDFLAGS:鏈接庫使用的選項
wildcard 查找當(dāng)前目錄下所有.c文件,返回值給srcsrc=$(wildcard ./*.c)
patsubst 替換所有.c文件為.o文件obj=(src))
在makefile最后加入clean的目標(biāo),為了重新編譯所有文件得刪除原來生成的文件
關(guān)于“Linux系統(tǒng)中makefile的原理是什么”就介紹到這了,更多相關(guān)內(nèi)容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網(wǎng)站!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。