#!/bin/bash # GBT项目构建脚本 # 支持Linux和macOS set -e echo "🚀 开始构建GBT项目..." # 检查Rust环境 if ! command -v cargo &> /dev/null; then echo "❌ 错误: 未找到cargo,请先安装Rust" echo "访问 https://rustup.rs/ 安装Rust" exit 1 fi # 检查Rust版本 RUST_VERSION=$(rustc --version | cut -d' ' -f2) echo "📦 Rust版本: $RUST_VERSION" # 检查依赖 echo "" echo "检查依赖项..." # 检查ZMQ if ! pkg-config --exists libzmq3; then echo "警告: 未找到ZMQ开发库" echo "Ubuntu/Debian: sudo apt-get install libzmq3-dev" echo "CentOS/RHEL: sudo yum install zeromq-devel" echo "macOS: brew install zeromq" echo "" echo "继续构建,但可能遇到ZMQ相关错误..." fi # 检查OpenSSL if ! pkg-config --exists openssl; then echo "警告: 未找到OpenSSL开发库" echo "Ubuntu/Debian: sudo apt-get install libssl-dev" echo "CentOS/RHEL: sudo yum install openssl-devel" echo "macOS: brew install openssl" echo "" echo "继续构建,但可能遇到TLS相关错误..." fi echo "✓ 依赖检查完成" # 清理之前的构建 echo "🧹 清理之前的构建..." cargo clean # 更新依赖 echo "📥 更新依赖..." cargo update # 检查代码 echo "🔍 检查代码..." cargo check # 运行测试 echo "🧪 运行测试..." cargo test # 构建发布版本 echo "🔨 构建发布版本..." cargo build --release # 检查构建结果 if [ -f "target/release/gbt" ]; then echo "✅ 构建成功!" echo "📁 可执行文件位置: target/release/gbt" # 显示文件信息 echo "📊 文件信息:" ls -lh target/release/gbt # 显示版本信息 echo "ℹ️ 版本信息:" ./target/release/gbt --version 2>/dev/null || echo "无法获取版本信息" else echo "❌ 构建失败!" exit 1 fi echo "🎉 GBT项目构建完成!"