#!/bin/bash # 设置项目根目录 PROJECT_ROOT=$(pwd) # 设置构建目录 BUILD_DIR="$PROJECT_ROOT/build" # 设置生成的可执行文件路径和目标软链接路径 EXECUTABLE_PATH="$BUILD_DIR/App/console_pytorch/ISG_console_pytorch" TARGET_LINK="/usr/myapp/ISG" # 动态判断是否需要 sudo if [ "$EUID" -ne 0 ]; then SUDO="sudo" else SUDO="" fi # 检查构建目录是否存在 check_build_dir() { if [ ! -d "$BUILD_DIR" ]; then echo "构建目录不存在,请先运行完整构建流程。" exit 1 fi } # 执行 Make 构建 run_make() { echo "开始增量编译项目..." cd "$BUILD_DIR" || { echo "无法进入构建目录"; exit 1; } make -j$(nproc) || { echo "构建失败"; exit 1; } echo "构建完成!" } # 创建软链接 create_symlink() { if [ -L "$TARGET_LINK" ]; then echo "目标软链接已存在,正在删除: $TARGET_LINK" $SUDO rm -f "$TARGET_LINK" || { echo "无法删除现有软链接"; exit 1; } elif [ -e "$TARGET_LINK" ]; then echo "目标路径已存在且不是软链接: $TARGET_LINK" exit 1 fi echo "正在创建软链接..." $SUDO ln -s "$EXECUTABLE_PATH" "$TARGET_LINK" || { echo "创建软链接失败"; exit 1; } echo "软链接已成功创建: $TARGET_LINK -> $EXECUTABLE_PATH" } # 主流程 main() { echo "开始增量构建流程..." # 1. 检查构建目录是否存在 check_build_dir # 2. 执行增量编译 run_make # 3. 创建软链接 create_symlink echo "所有步骤完成!" } # 执行主流程 main