makefile基础

#第一阶段:了解三要素
#(目标):依赖条件
#(命令)
#all:add.c sub.c mul.c dev.c main.c
#    gcc add.c sub.c mul.c dev.c main.c -o app


#第二阶段:了解工作原理。自顶向下建立依赖,自下向上执行命令
#app:add.o sub.o mul.o dev.o main.o
#    gcc add.o sub.o mul.o dev.o main.o -o app
#add.o:add.c
#sub.o:sub.c
#mul.o:mul.c
#dev.o:dev.c
#main.o:main.c

#第三阶段:增强通用型,可移植性 (makefile特殊变量与变量的定义使用)
#  $@(目标)  $^(所有依赖)  $<(依赖中的第一个)
#VAR=$(wildcard *.c)
#OBJ=$(patsubst %.c,%.o,$(VAR))
#TARGET=app

#$(TARGET):*.o
#    gcc $(VAR) -o $@
#%.o:%.c
#.PHONY:clean
#clean:
#    -rm -f *.o     
#    -rm -f app

#text:
#    @echo $(VAR)
#    @echo $(OBJ)


#第四阶段Makefile
CC=arm-linux-gcc                    #编译器
CFLAGS=-c -g -Wall        #编译参数
CPPFLAGS=-E -D            #预处理参数
LDFLAGS=-L./lib -lmycal   #加载库,库名
SRC=$(wildcard *.c)    
OBJ=$(patsubst %.c,%.o,$(SRC))
TARGET=app
version=1.01

$(TARGET):$(OBJ)
    $(CC) $(OBJ) -o $@
%.o:%.c
    $(CC)  $(CFLAGS) $<

.PHONY:clean
clean:
    -rm -f *.o     
    -rm -f app
distclean:
    rm /usr/bin/$(TARGET)
install:
    sudo cp $(TARGET) /usr/bin
text:
    @echo $(SRC)
    @echo $(OBJ)

 

posted @ 2017-02-11 20:48  柳下_MBX  阅读(125)  评论(0编辑  收藏  举报