前面寫了“寫Makefile(二)”,現在對前面的Makefile作一個改進。
現在源文件有三個,分別是:main.cpp,tdes.c和tdes.h,Makefile內容如下:
看到了嗎,現在沒有對每個.o文件單獨寫一個依賴規則,今後幾十增加更多的.c和.cpp文件,只需要在OBJS文件後面添加一個.o文件的名字就可以了。
上面的辦法已經比較簡便了,但是還有人嫌編輯那麼多.o名字麻煩,那麼還有一個辦法,Makefile更改如下:
上面通過$(patsubst %.c,%.o,$(wildcard *.c)) 和$(patsubst %.cpp,%.o,$(wildcard *.cpp),將目錄下.c和.cpp文件名字全部轉化成.o文件列表,並賦予變量OBJS值。
但是這樣有一個缺點,這樣會把目錄下的所有源文件都編譯進來,有些文件可能你不希望編譯的,可能會引起不必要的錯誤。
可以根據自己的需要選擇。