#!/bin/bash # 确保脚本在遇到错误时停止执行 set -e # 定义路径 TARGET_DIR="./so" SRC_PARENT_SO="../so" SRC_CURRENT_SO="./libunswsc.so" echo "开始收集动态链接库 (.so 文件)..." # 1. 如果目标文件夹已存在,先清空它;如果不存在则创建 if [ -d "$TARGET_DIR" ]; then echo "清理旧的 $TARGET_DIR 目录..." rm -rf "$TARGET_DIR"/* else mkdir -p "$TARGET_DIR" fi # 2. 复制上级目录 so 文件夹下的所有 .so 文件(如果该目录存在的话) if [ -d "$SRC_PARENT_SO" ]; then # 检查里面是否有 .so 文件,防止因空目录报错 if ls "$SRC_PARENT_SO"/*.so >/dev/null 2>&1; then echo "正在从 $SRC_PARENT_SO 复制所有 .so 文件..." cp "$SRC_PARENT_SO"/*.so "$TARGET_DIR/" else echo "提示: 上级目录 $SRC_PARENT_SO 中未找到 .so 文件。" fi else echo "警告: 未找到上级目录的 so 文件夹 ($SRC_PARENT_SO)" fi # 3. 复制当前 build 目录下的 libunswsc.so if [ -f "$SRC_CURRENT_SO" ]; then echo "正在复制当前目录的 $SRC_CURRENT_SO ..." cp "$SRC_CURRENT_SO" "$TARGET_DIR/" else echo "错误: 未在当前目录找到 $SRC_CURRENT_SO 文件,请确保项目已成功编译!" exit 1 fi echo "===========================================" echo "所有动态库已成功汇总到: $TARGET_DIR" ls -lh "$TARGET_DIR"