#第一阶段:了解三要素 #(目标):依赖条件 #(命令) #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)