阅读《Linux程序设计》第四版,第九章中介绍了Makefile,其中特殊字符记录如下:
1. $?: 当前目标所依赖的文件列表中比当前目标文件还要新的文件;
2. $@: 当前目标的名字;
3. $<: 当前以来文件的名字;
4. $*: 不包括后缀名的当前依赖文件的名字;
5. -: 告诉make命令忽略所有错误;
6. @: 告诉make在执行某条命令前不要将该命令显示在标准输出上。
其中: $@, $<,$^称为自动变量。$@表示规则的目标文件名,$^表示所依赖的所有名字,名字之间用空格隔开,$<是地一个依赖的文件名字。
举例如下:
目录下有1.c 2.c文件。那么Makefile可以这么些:
-
FILE:Makefile
-
-
src := $(shell ls *.c)
-
objs := $(patsubst %.c,%.o, $(src) ) #该行意思是所有的*.c替换为*.o文件
-
-
test :$(objs)
-
gcc -o $@ $^
-
%.o : %.c
-
gcc -o $@ $<
-
-
clean:
-
rm -rf *.o test
阅读(2011) | 评论(0) | 转发(0) |