天天看點

makefile檔案編寫

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