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