本文共 1055 字,大约阅读时间需要 3 分钟。
注:以下文件的.depend文件相应后缀为.d,即xxx.c的.depend文件为xxx.d。
直接用gcc -MM产生的.depend文件形如:
test.o : test.c test.h
这样有个坏处,就是当 test.c 文件改变时,.depend文件仍然没变。若新的 test.c 中增加了头文件,则这个头文件并不会在依赖关系中(.dpend文件没变嘛)。所以要把.depend文件和其关联上。即变为
test.o test.d: test.c test.h
ARCH=arm ifeq ($(ARCH), arm) CC=arm-hisiv200-linux-gcc AR=arm-hisiv200-linux-ar AS=arm-hisiv200-linux-as LD=arm-hisiv200-linux-ld CPP=arm-hisiv200-linux-g++ CP = cp else CC=gcc AR=ar AS=as LD=ld CPP=g++ CP=cp endif SRC += $(wildcard ../*.c) OBJ += $(patsubst %.c, %.o, $(notdir $(SRC))) RULES_OBJ := $(patsubst %.c, %.d, $(filter %.c, $(SRC))) CFLAGS = -Wall -g LDFLAGS = -lpthread CPPFLAGS += -I../../../include/vod all:$(OBJ) $(AR) ruv $(TARGET_LIB) $(OBJ) mv $(TARGET_LIB) ../ #产生.d文件 %.d: %.c $(CC) -MM $(CPPFLAGS) $< | sed -e 's/^\(.*\)\.o/\1\.o \1\.d/' > $@ %.o: %.c $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< clean: -rm -f $(OBJ) @-rm -f ../$(TARGET_LIB) @-rm -f *~ .*swp a.out @-rm -f *.o @-rm -f *.s 转载地址:http://paldi.baihongyu.com/