---- 整理自狄泰软件唐佐林老师课程
1. 需求
- 工程项目中不希望源码文件夹在编译时被改动(只读文件夹)
- 在编译时自动创建文件夹(build)用于存放编译结果
- 编译过程中能够自动搜索需要的文件
- makefile 易于扩展,能够复用于相同类型的项目
- 支持调试版本的编译选项
2. 一些工具
$(wildcard $(DIR)/_pattern)
:获取
(
D
I
R
)
文件夹中满
足
p
a
t
t
e
r
n
的文件
‘
(DIR) 文件夹中满足 _pattern 的文件 `
(DIR)文件夹中满足pattern的文件‘(notdir _names):去除 _names 中每一个文件名的路径前缀
$(patsubst _pattern, replacement, _text)`:将 _text 中符合 _pattern 的部分替换为 replacecment
- 使用:
自动获取源文件列表(函数调用):SRCS := $(wildcard src/*.c)
根据源文件列表生成目标文件列表(变量值的替换):OBJS := $(SRCS:.c=.o)
替换每一个目标文件的路径前缀(函数调用):OBJS := $(patsubst src/%, build/%, $(OBJS))
3. 编译规则的依赖
4. 实验