一、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、

(二)自定义变量


(三)变量的赋值

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函数
(一)Makefile常用函数


1、wildcard

2、


(二)Makefile自定义函数



三、make使用




















