20231023_InSituLab_emb/InsituLabProject_XWJ/DataServicePlatform/makefile
Rjh913828050 4e26d518da 类型:更细
内容:更新十四五程序
人员:任家豪
2024-07-31 08:56:07 +08:00

42 lines
1.3 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#指定项目.c存在的文件夹
SRC_DIR= ./src/drv ./src/tool ./src/usr
#设置依赖文件夹搜索顺序,“:”为分隔符
vpath %.c ./src/drv: ./src/tool: ./src/usr:
#输出文件名
OUTPUT:= DataAcquistionSystem
#输出目录
OUTPUT_DIR= ./exe
#使用标准编译,-g:表示可以使用gdb调试,-Wall:所有错误和警告在编译的时候都打出来,-O2:-代码优化
#交叉编译
CC:= aarch64-linux-gnu-gcc
CXX:= aarch64-linux-gnu-g++
#包含路径
INCLUDE_DIR+= -I ./src/drv
INCLUDE_DIR+= -I ./src/tool
INCLUDE_DIR+= -I ./src/usr
#编译链库
LIB:= -lrt -lpthread -lm -ljson-c -lcurl -lnats -lmodbus
#遍历所有子目录中的.c文件
SRC = $(foreach dir,$(SRC_DIR),$(wildcard $(dir)/*.c))
#指定.o文件的存放目录
OBJ_DIR = ./obj
#目标文件
OBJ:= $(patsubst %.c,%.o,$(SRC))
#去.o文件地址只保留文件名
OBJ_WITHOUT_DIR = $(notdir $(OBJ))
#将生成的.o文件与指定目录相绑定
OBJ_WITH_DIR = $(addprefix $(OBJ_DIR)/,$(OBJ_WITHOUT_DIR))
#以下不需要变动
all: clean $(OBJ_WITHOUT_DIR) $(OUTPUT)
$(OUTPUT):$(OBJ_WITH_DIR)
$(CC) -Wall -o $(OUTPUT_DIR)/$@ $^ $(LIB_DIR) $(LIB)
%.o:%.c
$(CC) $(INCLUDE_DIR) $(LIB_DIR) $(LIB) -c $< -o $(OBJ_DIR)/$@
clean:
rm -rf $(OUTPUT_DIR)/DataAcquistionSystem $(OBJ_DIR)/*.o
.PHONY: all clean