一、Makefile用法及变量(自定义变量、自动变量、隐含变量)
(一)Makefile的重要性
1、编译文件
2、正常编译,文件多的时候操作麻烦
3、决定能不能完成大型工程
(二)Makefile的概述
1、自动化编译-makefile
编译效率:make编译过的文件不再编译
(三)Makefile的基本语法
1、语法
2、使用
1)创建一个目录
2)和函数
3)和函数声明
4)减函数
5)减函数声明
6)主函数
7)普通编译
8)makefile编译
9)两步编译
此时编译,只会执行第一个目标sub.o
解决办法:将我们最后需要的test提到最前面,想要实现test需要执行下面的目标
10)修改test.c
此时只有两条命令会重新执行
生成test.o和生成test
由于sub.c和add.c没有发生变化
所以sub.o和add.o不需要重新编译生成
11)删除除了.c和可执行文件
常规:rm *.o
放到makefile中
也可以理解为:不加目标,只访问第二个目标,加了目标,会直接访问此目标
二、Makefile自定义变量
(一)Makefile创建变量的目的
(二)自定义变量
(三)变量的赋值
1、=
2、?=
3、:=
4、+=追加赋值
三、Makefile自动变量
1、$+ $^ $<
2、@$ 不显示命令
3、打印
四、Makefile隐含变量
1、CC:编译器的名字
没有的编译器会报错
2、CFLAGS
3、头文件在不同目录
要指定头文件的路径 -I(绝对或相对)
4、$RM == rm -f
5、% % ==.o .c
五、Makefile的条件判断及函数使用
(一)Makefile条件判断
1、ifeq
2、ifneq
3、ifdef
4、变量
(二)Makefile常用函数
1、wildcard
2、模式字符串替换函数
(三)Makefile自定义函数
六、make使用