1.Makefile 中$@ $^ $< 解釋
轉載的例子
OBJS = ifconfig.o tftp_util.o ping.o
SRCS = $(OBJS:.o=.c)
PHONY += all
all : $(BUILT_IN_OBJ)
$(BUILT_IN_OBJ) : $(OBJS)
$(LD) $(LDFLAGS) -r $^ -o $@
$(OBJS) : $(SRCS)
$(CC) $(CFLAGS) -c $^
PHONY += clean
clean :
@rm -vf *.o
.PHONY : $(PHONY)
----------------------------------------------------------------------------------------------------------------------------------------
說明:$(BUILT_IN_OBJ) 和 $(PHONY)來自上層目錄g-bios/app/Makefile,可以不用了解。
$@ 代表目标 上例為$(BUILT_IN_OBJ)
$^ 代表所有的依賴對象 上例第一個$^為$(OBJS),即 ifconfig.o tftp_util.o
ping.o,上例第二個$^為$(SRCS),即$(OBJS:.o=.c) (Makefile解釋後為: ifconfig.c
tftp_util.c ping.c)
$< 代表第一個依賴對象 前面例子修改如下:
$(LD) $(LDFLAGS) -r $< -o $@
則$<表示為ifconfig.o