fix:更新客户端功能

This commit is contained in:
nnbcccscdscdsc
2026-03-16 22:28:05 +08:00
parent 7f2f79e672
commit 6c975d9ae3
18 changed files with 8067 additions and 33092 deletions

View File

@@ -3,6 +3,7 @@ CC ?= gcc
# ARM 交叉编译工具链前缀(可按本地环境替换)。
CROSS_COMPILE ?= arm-linux-gnueabihf-
ARM_CC ?= $(CROSS_COMPILE)gcc
ARM64_CC ?= aarch64-linux-gnu-gcc
# 产物目录native: build/arm: build/arm/)。
BUILD_DIR ?= build
@@ -31,6 +32,9 @@ APP_TEST_SRC := src/apps/test_main.c
APP_CLIENT_SRC := src/apps/client_main.c
APP_SERVER_SRC := src/apps/server_main.c
APP_RELAY_SRC := src/apps/relay_main.c
APP_HUB_SRC := src/apps/hub_main.c
APP_PEER_SRC := src/apps/peer_main.c
APP_BRIDGE_SRC := src/apps/bridge_main.c
# 将源文件映射到 BUILD_DIR 下的对象文件路径。
COMMON_OBJS := $(patsubst %.c,$(BUILD_DIR)/%.o,$(COMMON_SRCS))
@@ -38,6 +42,9 @@ TEST_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_TEST_SRC))
CLIENT_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_CLIENT_SRC))
SERVER_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_SERVER_SRC))
RELAY_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_RELAY_SRC))
HUB_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_HUB_SRC))
PEER_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_PEER_SRC))
BRIDGE_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_BRIDGE_SRC))
# 按目标清理时,仅删除对应可执行文件与专属入口对象,避免影响其它产物。
CLIENT_CLEAN_FILES := $(BUILD_DIR)/omni_client $(CLIENT_OBJ)
@@ -50,9 +57,12 @@ TARGETS := \
$(BUILD_DIR)/omni_test \
$(BUILD_DIR)/omni_client \
$(BUILD_DIR)/omni_server \
$(BUILD_DIR)/omni_relay
$(BUILD_DIR)/omni_relay \
$(BUILD_DIR)/omni_hub \
$(BUILD_DIR)/omni_peer \
$(BUILD_DIR)/omni_bridge
.PHONY: all arm clean clean-client clean-arm64-client help
.PHONY: all arm arm64 clean clean-client clean-arm64-client help
# 本机构建入口。
all: $(TARGETS)
@@ -70,6 +80,15 @@ $(BUILD_DIR)/omni_server: $(COMMON_OBJS) $(SERVER_OBJ)
$(BUILD_DIR)/omni_relay: $(COMMON_OBJS) $(RELAY_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(BUILD_DIR)/omni_hub: $(BUILD_DIR)/src/core/logger.o $(HUB_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(BUILD_DIR)/omni_peer: $(BUILD_DIR)/src/core/logger.o $(PEER_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(BUILD_DIR)/omni_bridge: $(BUILD_DIR)/src/core/logger.o $(BRIDGE_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
# 通用编译规则:
# - 自动创建对象文件所在目录
# - 编译单个 .c 为 .o
@@ -81,6 +100,10 @@ $(BUILD_DIR)/%.o: %.c
arm:
$(MAKE) BUILD_DIR=build/arm CC=$(ARM_CC) all
# ARM64 构建入口:适合大多数 Jetson 设备。
arm64:
$(MAKE) BUILD_DIR=build/arm64 CC=$(ARM64_CC) all
# 仅清理当前 BUILD_DIR 下的 omni_client 与其入口对象。
clean-client:
rm -f $(CLIENT_CLEAN_FILES)
@@ -97,6 +120,8 @@ clean:
help:
@echo "make -> build native binaries in build/"
@echo "make arm -> build ARM binaries in build/arm (arm-linux-gnueabihf-gcc)"
@echo "make arm64 -> build ARM64 binaries in build/arm64 (aarch64-linux-gnu-gcc)"
@echo "generated binaries: omni_test omni_client omni_server omni_relay omni_hub omni_peer omni_bridge"
@echo "make clean-client -> remove omni_client and client_main.o in BUILD_DIR"
@echo "make clean-arm64-client -> remove omni_client and client_main.o in build/arm64"
@echo "make clean -> remove build artifacts"