歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Makefile之寫demo時的通用Makefile寫法

Makefile之寫demo時的通用Makefile寫法

日期:2017/3/1 9:57:03   编辑:Linux編程

前面的一篇文章Makefile之大型工程項目子目錄Makefile的一種通用寫法介紹了大型項目子目錄Makefile的一種通用寫法,然而最近在寫Linux網絡方面的demo,一個目錄下有幾個文件,如果手工輸命令顯得太不專業了。於是按該博文的方法改編了一下Makefile,也當學習之用。該Makefile適用於一個C文件生成一個可執行程序的場景,使用該方法當工程目錄內的文件有增刪時無需對Makefile進行改動,可以說相當的智能。如果對patsubst、wildcard及subst函數不了解的話可參閱上述博文。同時在測試過程中,又發現了一種更簡潔的寫法,如代碼片段2,應該是使用了某些默認規則,由於項目較忙,還未來得及深入研究,先記錄下來,等空下來再研究,還望路過大俠多多指點。

1:如果在當前目錄中直接make的話使用下列代碼:

#General Purpose Makefile by guoqingbo

objects := $(patsubst %.c,%.o,$(wildcard *.c))
executables := $(patsubst %.c,%,$(wildcard *.c))

all : $(objects)
$(objects) : %.o: %.c
gcc -c $< -o $@
gcc $< -o $(subst .o, ,$@)
clean :
@rm -rf *.o *~
@rm -rf ${executables}
.PHONY : clean

2:後來發現下列代碼也可以有相同效果,難道使用了什麼默認規則,還不是很明白,先記錄下來:

#General Purpose Makefile by guoqingbo

executables := $(patsubst %.c,%,$(wildcard *.c))

all : $(executables)

clean :
@rm -rf *.o *~
@rm -rf ${executables}
.PHONY : clean

Copyright © Linux教程網 All Rights Reserved