一、makefile的編寫:一個規則 兩個函數 三個變量
1. 一個規則
三要素: 目標, 依賴, 命令
目標:依賴
命令
1) 第一條規則是用來生成終極目標的規則
1>. 如果規則中的依賴不存在, 向下尋找其他的規則,
2>. 更新機制: 比較的是目標文件和依賴文件的時間
2. 兩個函數
1) 查找指定目錄下, 指定類型的文件
src=$(wildcard ~/aa/*.c)
2)匹配替換函數
obj=$(patsubst %.c, %.o, $(src))
3. 三個自動變量
1)$<: 規則中的第一個依賴
2) $^: 規則中的所有依賴
3)$@: 規則中的目標
只能在規則中的命令中使用
4. 模式規則
%.o:%.c
gcc -c $< -o $@
子目標和終極目標的關係:
更新目標的原則:
3、makefile中變量的使用
例如:
app:main.o sub.o mul.o
gcc main.o sub.o mul.o -o app
gcc $^ -o $@
%.o:%.c
gcc -c $< -o $@
makefile中的自動變量
$<: 規則中的第一個依賴
$@: 規則中的目標
$^: 規則中的所有依賴
只能在規則的命令中使用