Makefile详解
Makefile 简介
- Makefile作用:记录依赖关系和编译规则;
- Makefile三要素:目标、依赖、命令
- Makefile基本格式:
目标:依赖的文件或者其他目标
<tab>命令1
<tab>命令2
… - 设置伪目标:.PHONY: clean
- 指定Makefile文件:make -f Makefile2
Makefile变量及模式规则
- 自定义变量
符号 | 含义 |
---|---|
= | 延时赋值(调用时赋值) |
:= | 立即赋值 |
?= | 空赋值(变量为空时赋值) |
+= | 追加赋值(不覆盖原值,在后面追加) |
自动化变量
- $< 第一个依赖文件
- $^ 所有的依赖文件
- $@ 目标文件
模式匹配:%匹配任意多个非空字符
默认规则:.o文件默认.c文件编译
Makefile条件分支
1 |
|
Makefile常用函数
- patsubst(模式替换函数):
${patsubst pattern, replace_pattern, text}
%作通配符 - notdir(取文件名函数):
${notdir .../.../name}
去掉目录部分只取文件名 - wildcard(取匹配文件名函数):
${wildcard pattern}
取当前目录下所有符合pattern模式的文件名,*作通配符 - foreach(遍历函数):
${foreach var, list, text}
将list中每一个单词赋值给var,然后在text中使用var
编写Makefile
- 创建目录用于存储编译过程中生成的文件:BUILD_DIR
- 源文件目录(存放.c及.s后缀文件):SRC_DIR
- 头文件目录(存放.h文件):INC_DIR
- 搜索路径关键字:VPATH
- 编译器头文件路径:CFLAGS -I + 头文件路径
1 |
|
Makefile详解
http://example.com/2022/09/21/Makefile/