溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)中makefile的原理是什么

發(fā)布時間:2022-01-26 11:36:58 來源:億速云 閱讀:158 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章主要為大家分析了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簡介:

  • Makefile 可以簡單的認(rèn)為是一個工程文件的編譯規(guī)則,描述了整個工程的編譯和鏈接等規(guī)則。

  • 其中包含了那些文件需要編譯,那些文件不需要編譯,那些文件需要先編譯,那些文件需要后編譯,那些文件需要重建等等。

  • 編譯整個工程需要涉及到的,在 Makefile 中都可以進行描述。換句話說,Makefile 可以使得我們的項目工程的編譯變得自動化,不需要每次都手動輸入一堆源文件和參數(shù)。

1.makefile的命名(兩種)

  1. makefile

  2. Makefile

2. makefile的規(guī)則

規(guī)則的三個要素:目標(biāo)、依賴、命令

Linux系統(tǒng)中makefile的原理是什么

3. 多文件的makefile的編寫(一個源文件只重新編譯改變的文件)

  1. makefile可以有多個規(guī)則,當(dāng)?shù)谝粋€規(guī)則的的命令在執(zhí)行的時候發(fā)現(xiàn)沒有相應(yīng)的依賴,就在下面的規(guī)則中找。最上面的規(guī)則的目標(biāo)是終極目標(biāo)一定寫在最上面,也就是最后要生成的文件。Linux系統(tǒng)中makefile的原理是什么

  2. 多文件Makefile的更新原理(基于時間)Linux系統(tǒng)中makefile的原理是什么

4. makefile中的變量

  1. 自定義變量obj=main.o add.o sub.o引用的時候直接使用 $(obj)Linux系統(tǒng)中makefile的原理是什么

  2. 自動變量()規(guī)則中的第一個依賴@:規(guī)則中的目標(biāo)$^: 規(guī)則中所有的依賴

  3. 模式自動匹配 %子規(guī)則中:

  4. makefile維護的變量(通常大寫,自己可以修改)CC:cc(即gcc)APPFLAGS:預(yù)處理使用的選項CFLAGS:編譯的時候使用的選項LDFLAGS:鏈接庫使用的選項

Linux系統(tǒng)中makefile的原理是什么

5. makefile中的函數(shù)(都是有返回值)

  1. wildcard 查找當(dāng)前目錄下所有.c文件,返回值給srcsrc=$(wildcard ./*.c)

  2. patsubst 替換所有.c文件為.o文件obj=(src))Linux系統(tǒng)中makefile的原理是什么

6. make clean

在makefile最后加入clean的目標(biāo),為了重新編譯所有文件得刪除原來生成的文件Linux系統(tǒng)中makefile的原理是什么

7. 最終的簡單的makefile

Linux系統(tǒng)中makefile的原理是什么

關(guān)于“Linux系統(tǒng)中makefile的原理是什么”就介紹到這了,更多相關(guān)內(nèi)容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網(wǎng)站!

向AI問一下細節(jié)

免責(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)容。

AI