2025-05-29 23:08:59 +08:00
|
|
|
|
# ================================================================
|
|
|
|
|
# 1. 确保交叉编译工具链路径正确
|
|
|
|
|
# 2. 确保源码放在src目录,头文件放在inc目录
|
|
|
|
|
# 3. 命令行执行:
|
|
|
|
|
# make # 编译
|
|
|
|
|
# make clean # 清理
|
2025-05-30 16:41:12 +08:00
|
|
|
|
#
|
|
|
|
|
# 4. 编译输出文件在build下:msg_udp_ctrl.out
|
2025-05-29 23:08:59 +08:00
|
|
|
|
# ================================================================
|
|
|
|
|
|
|
|
|
|
# TODO 交叉编译器路径配置
|
|
|
|
|
TOOLCHAIN_DIR ?= /home/qieyuan/bupt_project/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
|
2025-05-30 16:41:12 +08:00
|
|
|
|
CROSS_COMPILE ?= $(TOOLCHAIN_DIR)/bin/aarch64-linux-gnu-
|
2025-05-29 23:08:59 +08:00
|
|
|
|
|
|
|
|
|
# 编译配置
|
|
|
|
|
CC = $(CROSS_COMPILE)gcc
|
|
|
|
|
AR = $(CROSS_COMPILE)ar
|
|
|
|
|
STRIP = $(CROSS_COMPILE)strip
|
|
|
|
|
|
2025-05-30 16:41:12 +08:00
|
|
|
|
# 输出目录配置
|
2025-05-29 23:08:59 +08:00
|
|
|
|
BUILD_DIR = build
|
|
|
|
|
TARGET = $(BUILD_DIR)/msg_udp_ctrl.out
|
|
|
|
|
|
|
|
|
|
# 代码目录配置
|
|
|
|
|
SRC_DIR = src
|
|
|
|
|
INC_DIR = inc
|
|
|
|
|
OBJ_DIR = $(BUILD_DIR)/obj
|
|
|
|
|
|
|
|
|
|
# 编译器选项配置
|
2025-05-30 16:41:12 +08:00
|
|
|
|
CFLAGS = -O2 -Wall -Werror -g
|
|
|
|
|
CFLAGS += -I$(INC_DIR) # 头文件搜索路径
|
|
|
|
|
CFLAGS += -MMD -MP # 自动生成依赖关系
|
|
|
|
|
CFLAGS += -fPIC # 位置无关代码
|
|
|
|
|
LDFLAGS = -lpthread -lrt # 多线程与mmap拓展库
|
2025-05-29 23:08:59 +08:00
|
|
|
|
|
|
|
|
|
# UDP专用宏定义
|
|
|
|
|
# DEFINES = -DUSE_UDP_OPTIMIZE=1
|
|
|
|
|
# CFLAGS += $(DEFINES)
|
|
|
|
|
|
|
|
|
|
# 自动收集源文件
|
|
|
|
|
SRCS = $(wildcard $(SRC_DIR)/*.c)
|
|
|
|
|
OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
|
|
|
|
|
DEPS = $(OBJS:.o=.d) # 依赖
|
|
|
|
|
|
|
|
|
|
# ======================== 构建规则 ===============================
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean
|
|
|
|
|
|
|
|
|
|
all: $(TARGET)
|
|
|
|
|
|
|
|
|
|
# 主目标链接
|
|
|
|
|
$(TARGET): $(OBJS)
|
|
|
|
|
@echo "Linking $@"
|
|
|
|
|
@mkdir -p $(@D) # 创建目标目录
|
|
|
|
|
$(CC) $^ -o $@ $(LDFLAGS)
|
|
|
|
|
|
|
|
|
|
# 编译规则
|
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
|
|
|
@echo "Compiling $<"
|
|
|
|
|
@mkdir -p $(@D) # 创建对象目录
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
# 包含自动生成的依赖关系
|
|
|
|
|
-include $(DEPS)
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
rm -rf $(BUILD_DIR)
|