makefile 关键字
1. include
include makefile1.mk ------如果引用不成功,会有警告
查询目录:(1)-I 或--include-dir 指定目录
(2)/usr/local/bin或/usr/include
-include makefile.mk -----不理不能引用的警告
2. ~
表示当前用户目录,如~/test ---> /home/user/test
3. $?
所有比目标新癿依赖目标癿集合。以空格分隔。
4. $<
依赖目标中癿第一个目标名字。如果依赖目标是以模式(即"%")定义的,那么"$<"将是符合模式癿一系列的文件集。注意,其是一个一个取出来的。
5.$^
所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那会去除重复的依赖目标,只保留一样。
6. $+
所有依赖目标的集合,以空格分隔,只是不会去除重复的依赖目标。
7. $@
表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配亍目标中模式定义的集合。
8. $%
仅目标是函数库文件中,表示规则中的目标成员名。例如,如果一个目标是"foo.a(bar.o)",那么,"$%"就是"bar.o","$@"就是"foo.a"。如果目标不是函数库文件(Unix 下是[.a],Windows 下是[.lib])那么,其值为空。
example1:
CC=gcc
Target=execute
OBJ=main.o fun1.o
$(Targe):$(OBJ)
$(CC) $(OBJ) -o $(Target)
main.o:main.c
$(CC) -c main.c
fun1.o:fun1.c fun1.h
$(CC) -c fun1.c
clean:
rm -f *.o
example2:静态模式
CC=gcc
OBJ=main.o fun1.o
all:$(OBJ)
$(CC) -o all $(OBJ)
$(OBJ):%.o:%.c #--->main.o:main.c fun1.o:fun1.c
$(CC) -c $< -o $@ # $(CC) -c main.c $(CC) -c fun1.c
clean:
rm -f *.o
Makefile教程-经典.pdf
阅读(591) | 评论(0) | 转发(0) |