對Makefile進行抽象
動機
隨着源文件的數量的增多,使用的類庫越來越多,想要調整Makefile就需要更多的時間來思考,所以需要將Makefile當中一些有共性的地方抽象出來,讓這個文件更加簡潔,也降低出錯的概率,降低失誤帶來的時間成本的消耗。
改進思路
- 使用變量來替代重複的內容,方便後期修改
- 使用隱含規則,降低編寫makefile的成本
應用的技術點總結
有用的變量
@ ^< @ —— 目標文件(冒號前面的名稱只在當前段內有效)
——指代所有的依賴(冒號後面的部分) < —— 指代第一個依賴(冒號後面第一個)Makefile的一個缺省規則
是(雙)後綴名規則,似乎沒有模式規則優越,暫時夠用了
.cpp.o:
gcc -c $<
- 定義變量的規則
TARGET : 生成的目標文件
OBJ : 中間obj文件
CC : 使用的編譯器
LIB : 使用的鏈接庫
LIB_DIR : 鏈接庫所在的文件路徑
INCLUDE : 包含頭文件的路徑
CFLAGS: 編譯器的命令