【Linux】makefile
VERSION1
目标 :依赖
规则 命令
1 # VERSION1
2 #-----------------------------------------------------
3 #app: main.c add.c sub.c div.c mul.c
4 # gcc -o app -I ../include/ main.c add.c sub.c div.c mul.c
VERSION2
8 # VERSTON2
9 #get all .c files makefile默认处理第一个目标 wildcard通配符
10 SrcFiles=$(wildcard *.c)
11 #all.c files -> .ofiles
12 objFiles=$(patsubst %.c,%.o,$(SrcFiles))
13
14 all:app
15 #//目标文件用法$(var) $@代表目标 $^ 全部依赖 $<第一个依赖 $?第一个变化的依赖
16 app:$(objFiles)
17 gcc -o $@ -I ../include/ $(objFiles)
18
19
20 %.o:%.c
21 gcc -c $< -I ../include/ -o $@
22 #模式匹配规则 $@,$<只能在makefile 中使用 ,-o $@可不加(明确指定生成xx.o文件,-c 也生成.o文件)
23 #依赖 规则可以不写 echo 显示该条指令 ( make test测试)
24 test:
25 @echo $(SrcFiles)
26 @echo $(objFiles)
27
28 #定义伪目标,防止有歧义(clean all伪目标只出现在makefile中)
29 .PHONY:clean all
30
31 #清理 .o和目标文件 前面加@ 不显示该条命令 前面加- 如果该条指令报错继续执行
32 clean:
33 -@rm -f *.o
34 -@rm -f app