makefile:
#目标文件名
target = main
#编译工具链
cc := arm-linux-gcc
#链接库的文件路径、头文件路径与要链接的库
PI_LIB_PATH := -I ../public/head #-L /库文件路径
#.o文件存放路径
O_PATH = ../OBJ
#源文件路径
SUBDIR := ../public/source
#获取源文件路径下的所有.o文件名
GCC_SOURCE_PATH = $(foreach dir,$(SUBDIR),$(wildcard $(dir)/*.c))
GCC_OBJ_PATH = $(patsubst %.c,$(O_PATH)/%.o, $(notdir $(GCC_SOURCE_PATH)))
#生成目标文件
$(O_PATH)/$(target) : $(GCC_OBJ_PATH) ../OBJ/main.o
$(cc) $(GCC_OBJ_PATH) ../OBJ/main.o $(PI_LIB_PATH) -o $(O_PATH)/$(target)
#将生成的.o文件放到O_PATH目录下
$(O_PATH)/%.o: $(SUBDIR)/%.c
$(cc) -c $(PI_LIB_PATH) $< -o $@
../OBJ/main.o: main.c
$(cc) -c $(PI_LIB_PATH) main.c -o ../OBJ/main.o
#伪目标
.PHONY : clean clear
clean :
rm $(GCC_OBJ_PATH) ../OBJ/main.o
rm $(O_PATH)/$(target)
clear :
rm $(GCC_OBJ_PATH) ../OBJ/main.o