Makefile應用筆記(未完)

      旁白:想要做Linux平臺下項目編程工作,之前在網上買了一本清華大學出版社出版的《Linux網絡編程》便學了起來。幾天過去了,在這平臺上的開發還沒磨合好,但是掌握了不少東西。今天死盯着Makefile這一塊,算掌握了點東西,只知道現在一個腦袋兩個大。但還是得記點關鍵的東西。

 

1、Makefile中預定義變量

      在Makefile中有一些已經定義的變量,用戶可以直接使用這些變量,不用進行定義。

      Makefile的自定義變量包括:CC,RM,CFLAGS,CXXFLAGS等等,其中這些預定義變量有的默認值,有的沒有默認值。如:RM的默認值爲RM=rm -f,而CFLAGS沒有默認值。CFLAGS有進行賦值時,使用C編譯時是自動調用的。也就就是說在執行cc -o a.out *.o命令編譯時,將自動變成這樣 cc $(CFLAGS) -o a.out *.o 形式的命令調用。

 

2、Makefile中的自動變量

      $*:表示目標文件的名稱,不包含目標文件的擴展名。

      $+:表示所有的依賴名文件,這些依賴文件之間以空格分開,按照出現的先後爲順序,其中可能包含重複的依賴文件。

      $<:表示依賴項中第一個依賴文件的名稱。

      $?:依賴項中,所有的目標文件時間戳晚的依件,依賴文件之間以空格分。

      $@:目標項中目標文件的名稱。

      $^:依賴項中,所有不重複的依賴文件,這些文件之間以空格分開。

 

3、Makefile自動文件路徑搜索

      Makefile的目錄搜索功能提供了一個指定需要搜索的目錄,make會自動找到指定文件的目錄並添加到文件上。使用VPATH變量可以實現此目的。VPATH變量的使用方法如下:

VPATH=path1:path2:...

      VAPTH 右邊的冒號“:”分隔的路徑名稱,例如下面的指令:

   

     add_int.o的規則自動擴展成如下代碼:

      

4、自動推導規則

     使用make編譯擴展名爲.c的C語言文件的時候,源文件的編譯規則不用明確地給出。這是因爲make進行編譯的時候會使用一個默認的編譯規則,按照默認規則完成對.c文件的編譯,生成對應的.o文件。它執行命令cc -c來編譯.c源文件。在Makefile中只需要給出需要重建的目標文件名(.o文件),make會自動爲這個.o尋找合適的依賴文件(對應的.c文件),並且使用默認的命令來構建這個目標文件。

 

 

 

6、MakeFile中的函數

5、遞歸make

發佈了35 篇原創文章 · 獲贊 14 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章