Makefile实例解析(完全注释)

#   For 2416 Project
#   Write by lx-gzjp-2011-7-19


#*********** setting**********************************************
CC :=gcc
OUTDIR := obj
OUTBINNAME := go
SRC_DIR := ./ 2416def/ bmp/ lcddriver/ disp/ zklib/ gps/ usb/ timer/ anet/ omc/
#*****************************************************************


LINK :=$(CC) -o
LINETHREAD := -lpthread  -lm
CFLAG :=-c -O2 -o
SRC_SUFFIX := .c
OBJ_SUFFIX := .o


SRCS :=$(foreach n,$(SRC_DIR),$(wildcard $(n)*$(SRC_SUFFIX)))
OBJECTS := $(patsubst %$(SRC_SUFFIX),$(OUTDIR)/%$(OBJ_SUFFIX),$(notdir $(SRCS)))


all     : $(OUTDIR) $(OUTDIR)/$(OUTBINNAME)


.PHONY : all

$(OUTDIR):
        mkdir   $@




$(OUTDIR)/$(OUTBINNAME):$(OBJECTS)
        $(LINK) $@ $(OBJECTS) $(LINETHREAD)
        @echo "Finished!"
        @echo "Binfile is $(OUTDIR)/$(OUTBINNAME)!"


$(OUTDIR)/main.o:main.c
        $(CC) $(CFLAG) $@ $<


$(OUTDIR)/%.o:$(SRCS)
        $(CC) $(CFLAG) $@ $(*F)/$(*F).c


clean:
        @rm -rf obj
        @echo "$(OUTDIR) has been deleted!"


=======================     Makefile 领悟      =========================================================

edit(最终目标) : main.o kbd.o command.o display.o insert.o search.o files.o utils.o (最终目标文件的依赖文件是中间文件)
 cc -o edit main.o kbd.o command.o display.o  insert.o search.o files.o utils.o    //由很多.o文件生成最终目标文件
main.o : main.c defs.h 
 cc -c main.c                        //没有.o,难道是隐晦规则中的把.o直接变成当前目标了


================================================================================================


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值