objs := main.o Lcd.o DevUtil.o Gpio.o smalllcd : $(objs) g++ -o $@ $^ -lpthread # 需要判断是否存在依赖文件 dep_files := $(foreach f, $(objs), .$(f).d) dep_files := $(wildcard $(dep_files)) # 把依赖文件包含进来 ifneq ($(dep_files),) include $(dep_files) endif %.o : %.cpp g++ -Wp,-MD,.$@.d -c -o $@ $< -lpthread clean: rm *.o biglcd -f distclean: rm $(dep_files) *.o biglcd -f