有关一点Makefile

三个 比较有用的变量是 $@, $<和 $^ (这些变量不需要括号括住)。 $@ 扩展成当前规则的目的文件名, $< 扩展成依靠列表中的第 一个依靠文件,而 $^ 扩展成整个依靠的列表(除掉了里面所有重 复的文件名)。利用这些变量,我们可以把上面的 makefile 写成:
    
    === makefile 开始 ===
    OBJS = foo.o bar.o
    CC = gcc
    CFLAGS = -Wall -O -g
    
    myprog : $(OBJS)
     $(CC) $^ -o $@
    
    foo.o : foo.c foo.h bar.h
     $(CC) $(CFLAGS) -c $<-o $@
    
    bar.o : bar.c bar.h
     $(CC) $(CFLAGS) -c $<-o $@
//
可简化为:
    OBJS = foo.o bar.o
    CC = gcc 
    EXEC=myprog
    CFLAGS = -Wall -O -g 
     
    all:$(EXEC)
    $(EXEC): $(OBJS)
     $(CC) $(OBJS) $(CFLAGS) -o $@ 
posted @ 2008-04-25 17:03  fishert  阅读(193)  评论(0编辑  收藏  举报