Makefile知识补遗

1.例如,
.PHONY : clean
clean :
-rm edit $(objects)

.PHONY意思表示clean是一个“伪目标”

2.在rm命令前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事。

3.
$@表示目标文件,(因为@很像靶子,target)
$<表示依赖文件

4.静态模式
objects = foo.o bar.o
all: $(objects)
$(objects): %.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
解释:%.o表示$(objects)中所有.o文件,%.c表示所有.o文件去掉后缀,然后加上.c后缀

5.gcc产生依赖关系文件,“-MM”的选项,注意“-M”选项会把系统目录的依赖文件也列出来
cc -MM main.c
其输出是:
main.o : main.c defs.h

6.
$(sources:.c=.d)”中的“.c=.d”的意思是做一个替换,把变量$(sources)所有[.c]的字串都替换成[.d]

7.
make –C XX 意思为到XX目录下寻找Makefile

posted @ 2009-05-18 10:20  Fan Zhang  阅读(178)  评论(0编辑  收藏  举报