1. wildcard用法
$(wildcard PATTERN…) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表
src=$(wildcard *.c ./sub/*.c)
dir=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(dir) )
all:
@echo $(src)
@echo $(dir)
@echo $(obj)
@echo "end"
# 第一行输出:
# a.c b.c ./sub/sa.c ./sub/sb.c
# wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。
# 第二行输出:
# a.c b.c sa.c sb.c
# notdir把展开的文件去除掉路径信息
# 第三行输出:
# a.o b.o sa.o sb.o
# 在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o,
# 或者可以使用'obj=$(dir:%.c=%.o)'效果也是一样的。
2. 理解$@、$^、$<的含义
- $@ 表示目标文件
- $^ 表示所有的依赖文件
- $< 表示第一个依赖文件
- $? 表示比目标还要新的依赖文件列表
PREVIOUSEclipse插件各种事件监听
NEXT数据库设计