Files
NaviGlassClient/avaota_app_demo/build_main.sh
2026-01-04 18:03:29 +08:00

114 lines
2.9 KiB
Bash
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.
#!/bin/bash
# 编译 AvaotaF1 客户端主程序
# 【开发者注意】请将 Tina SDK 放置到 SDK_ROOT 指定的路径
set -e # 错误时退出
# SDK 路径配置
# 【开发者注意】请确保 SDK 位于此路径,或修改此变量
SDK_ROOT="/home/rongye/ProgramFiles/TinaSDK/tina-v821-release"
echo "========================================="
echo "AvaotaF1 Client Build Script"
echo "========================================="
echo ""
# 检查 SDK 路径
if [ ! -d "$SDK_ROOT" ]; then
echo "错误SDK 路径不存在: $SDK_ROOT"
echo "请将 Tina SDK 放置到上述路径,或修改脚本中的 SDK_ROOT 变量"
exit 1
fi
# 保存项目目录在切换到SDK前
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 1. 进入 SDK 目录并设置环境
echo "1. 设置编译环境..."
cd "$SDK_ROOT"
source build/envsetup.sh 2>&1 || true # 忽略 envsetup.sh 的无害警告
# 2. 检查必需的库
echo ""
echo "2. 检查依赖库..."
STAGING_DIR="$SDK_ROOT/out/v821/avaota_f1/openwrt/staging_dir/target/usr/lib"
check_lib() {
local lib_name=$1
if [ -f "$STAGING_DIR/$lib_name" ]; then
echo "$lib_name 存在"
return 0
else
echo "$lib_name 缺失"
return 1
fi
}
all_libs_ok=true
# check_lib "libssl.so" || all_libs_ok=false (Removed in optimization)
# check_lib "libcrypto.so" || all_libs_ok=false (Removed in optimization)
check_lib "libcurl.so" || all_libs_ok=false
check_lib "libasound.so" || all_libs_ok=false
if [ "$all_libs_ok" = false ]; then
echo ""
echo "警告:部分库缺失,可能导致链接失败"
echo "建议在 SDK 中运行 'make menuconfig' 启用相应的库"
echo ""
fi
# 3. 清理并编译
echo ""
echo "3. 开始编译..."
echo ""
echo "项目目录: $PROJECT_DIR"
# 检查 src 目录是否存在
if [ ! -d "$PROJECT_DIR/src" ]; then
echo "错误:找不到 src 目录"
echo "当前路径:$PROJECT_DIR"
echo "请确认脚本在项目根目录执行"
exit 1
fi
# 切换到项目src目录
cd "$PROJECT_DIR/src"
# 清理旧文件
echo "清理旧的编译文件..."
make clean
# 编译主程序
echo ""
echo "编译 avaota_client..."
make all -j$(nproc)
# 4. 检查编译结果
echo ""
echo "========================================="
if [ -f "../build/bin/avaota_client" ]; then
echo "✅ 编译成功!"
echo "========================================="
echo ""
echo "输出文件:"
echo " ../build/bin/avaota_client"
echo ""
# 文件信息
file ../build/bin/avaota_client
ls -lh ../build/bin/avaota_client
echo ""
echo "下一步:"
echo " 1. 将程序上传到板子:"
echo " scp ../build/bin/avaota_client root@<板子IP>:/usr/bin/"
echo " 2. 在板子上运行:"
echo " avaota_client"
else
echo "❌ 编译失败"
echo "========================================="
exit 1
fi