mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-02-04 09:51:37 +08:00
update:添加构建脚本
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -27,7 +27,6 @@ ui_*.h
|
|||||||
*.qmlc
|
*.qmlc
|
||||||
*.jsc
|
*.jsc
|
||||||
Makefile*
|
Makefile*
|
||||||
*build-*
|
|
||||||
|
|
||||||
# Qt unit tests
|
# Qt unit tests
|
||||||
target_wrapper.*
|
target_wrapper.*
|
||||||
|
|||||||
157
BUILD_SCRIPTS.md
Normal file
157
BUILD_SCRIPTS.md
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
# Spark Store 编译脚本使用指南
|
||||||
|
|
||||||
|
本项目包含 4 个编译脚本,支持 Qt5 和 Qt6 并行编译。
|
||||||
|
|
||||||
|
## 脚本文件
|
||||||
|
|
||||||
|
### 1. **Qt5 编译脚本** (`build-qt5.sh`)
|
||||||
|
**功能**: 仅编译 Qt5 版本
|
||||||
|
```bash
|
||||||
|
./build-qt5.sh
|
||||||
|
```
|
||||||
|
**输出**:
|
||||||
|
- 编译目录: `build/qt5-Debug/`
|
||||||
|
- 可执行文件: `build/qt5-Debug/src/spark-store`
|
||||||
|
|
||||||
|
### 2. **Qt5 编译和运行脚本** (`build-run-qt5.sh`)
|
||||||
|
**功能**: 编译 Qt5 版本并立即运行
|
||||||
|
```bash
|
||||||
|
./build-run-qt5.sh
|
||||||
|
```
|
||||||
|
**流程**: 编译 → 运行应用(前台)
|
||||||
|
|
||||||
|
### 3. **Qt6 编译脚本** (`build-qt6.sh`)
|
||||||
|
**功能**: 仅编译 Qt6 版本
|
||||||
|
```bash
|
||||||
|
./build-qt6.sh
|
||||||
|
```
|
||||||
|
**输出**:
|
||||||
|
- 编译目录: `build/qt6-Debug/`
|
||||||
|
- 可执行文件: `build/qt6-Debug/src/spark-store`
|
||||||
|
|
||||||
|
### 4. **Qt6 编译和运行脚本** (`build-run-qt6.sh`)
|
||||||
|
**功能**: 编译 Qt6 版本并立即运行
|
||||||
|
```bash
|
||||||
|
./build-run-qt6.sh
|
||||||
|
```
|
||||||
|
**流程**: 编译 → 运行应用(前台)
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
### 编译 Qt6 版本
|
||||||
|
```bash
|
||||||
|
cd /home/momen/Desktop/spark-git/spark-store
|
||||||
|
./build-qt6.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 编译并运行 Qt5 版本
|
||||||
|
```bash
|
||||||
|
cd /home/momen/Desktop/spark-git/spark-store
|
||||||
|
./build-run-qt5.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 编译两个版本(共存)
|
||||||
|
```bash
|
||||||
|
# 先编译 Qt6
|
||||||
|
./build-qt6.sh
|
||||||
|
|
||||||
|
# 再编译 Qt5
|
||||||
|
./build-qt5.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 脚本特性
|
||||||
|
|
||||||
|
✓ **自动检测**: 检查 Qt 工具是否安装
|
||||||
|
✓ **并行编译**: 使用 `make -j$(nproc)` 利用所有 CPU 核心
|
||||||
|
✓ **结果验证**: 编译完成后验证可执行文件
|
||||||
|
✓ **错误处理**: 编译失败时立即停止并报错
|
||||||
|
✓ **清洁构建**: 每次都从头开始(删除旧构建目录)
|
||||||
|
|
||||||
|
## 构建目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
spark-store/
|
||||||
|
├── build/
|
||||||
|
│ ├── qt5-Debug/ # Qt5 构建目录
|
||||||
|
│ │ ├── src/
|
||||||
|
│ │ │ └── spark-store (可执行文件)
|
||||||
|
│ │ └── spark-update-tool/
|
||||||
|
│ │ └── spark-update-tool (可执行文件)
|
||||||
|
│ └── qt6-Debug/ # Qt6 构建目录
|
||||||
|
│ ├── src/
|
||||||
|
│ │ └── spark-store (可执行文件)
|
||||||
|
│ └── spark-update-tool/
|
||||||
|
│ └── spark-update-tool (可执行文件)
|
||||||
|
├── build-qt5.sh
|
||||||
|
├── build-run-qt5.sh
|
||||||
|
├── build-qt6.sh
|
||||||
|
└── build-run-qt6.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 环境要求
|
||||||
|
|
||||||
|
### Qt5
|
||||||
|
- qmake 路径: `/usr/lib/qt5/bin/qmake`
|
||||||
|
- Qt 版本: 5.15.15+
|
||||||
|
|
||||||
|
### Qt6
|
||||||
|
- qmake6 路径: `/usr/lib/qt6/bin/qmake6`
|
||||||
|
- Qt 版本: 6.8.2+
|
||||||
|
|
||||||
|
### 构建工具
|
||||||
|
- GCC/G++ 编译器
|
||||||
|
- make 工具
|
||||||
|
- pkg-config
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 问题: 未找到 Qt qmake
|
||||||
|
**解决**:
|
||||||
|
```bash
|
||||||
|
# 检查 Qt 安装
|
||||||
|
which qmake # 检查 Qt5
|
||||||
|
/usr/lib/qt6/bin/qmake6 --version # 检查 Qt6
|
||||||
|
```
|
||||||
|
|
||||||
|
### 问题: 编译出错
|
||||||
|
**解决**:
|
||||||
|
1. 检查所有依赖是否安装
|
||||||
|
2. 确保有充足的磁盘空间
|
||||||
|
3. 查看完整的错误信息
|
||||||
|
4. 尝试清理构建目录
|
||||||
|
|
||||||
|
## 高级用法
|
||||||
|
|
||||||
|
### 仅运行已编译的应用(不重新编译)
|
||||||
|
```bash
|
||||||
|
# Qt5
|
||||||
|
./build/qt5-Debug/src/spark-store
|
||||||
|
|
||||||
|
# Qt6
|
||||||
|
./build/qt6-Debug/src/spark-store
|
||||||
|
```
|
||||||
|
|
||||||
|
### 后台运行应用
|
||||||
|
```bash
|
||||||
|
# Qt5 后台运行
|
||||||
|
./build/qt5-Debug/src/spark-store &
|
||||||
|
|
||||||
|
# Qt6 后台运行
|
||||||
|
./build/qt6-Debug/src/spark-store &
|
||||||
|
```
|
||||||
|
|
||||||
|
### 跳过编译直接运行
|
||||||
|
```bash
|
||||||
|
# 如果已编译,可直接运行
|
||||||
|
./build/qt6-Debug/src/spark-store
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## 脚本维护
|
||||||
|
|
||||||
|
这些脚本会在每次运行时:
|
||||||
|
1. 检查 Qt 工具可用性
|
||||||
|
2. 清理旧的构建目录
|
||||||
|
3. 生成新的 Makefile
|
||||||
|
4. 编译项目
|
||||||
|
5. 验证编译结果
|
||||||
65
build-qt5.sh
Executable file
65
build-qt5.sh
Executable file
@@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Qt5 编译脚本
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
BUILD_DIR="${PROJECT_ROOT}/build/qt5-Debug"
|
||||||
|
|
||||||
|
echo "================================"
|
||||||
|
echo "Qt5 编译脚本"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 检查 Qt5 qmake
|
||||||
|
if ! command -v /usr/lib/qt5/bin/qmake &> /dev/null; then
|
||||||
|
echo "错误: 未找到 Qt5 qmake"
|
||||||
|
echo "请确保 Qt5 已安装: /usr/lib/qt5/bin/qmake"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Qt5 版本:"
|
||||||
|
/usr/lib/qt5/bin/qmake --version
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 创建构建目录
|
||||||
|
echo "创建构建目录: ${BUILD_DIR}"
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
mkdir -p "${BUILD_DIR}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 生成 Makefile
|
||||||
|
echo "生成 Makefile..."
|
||||||
|
cd "${BUILD_DIR}"
|
||||||
|
/usr/lib/qt5/bin/qmake "${PROJECT_ROOT}/spark-store-project.pro" -r CONFIG+=debug
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 编译
|
||||||
|
echo "开始编译..."
|
||||||
|
make -j$(nproc)
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "================================"
|
||||||
|
echo "Qt5 编译完成!"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
echo "可执行文件位置:"
|
||||||
|
echo " 主应用: ${BUILD_DIR}/src/spark-store"
|
||||||
|
echo " 更新工具: ${BUILD_DIR}/spark-update-tool/spark-update-tool"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 验证编译结果
|
||||||
|
if [ -f "${BUILD_DIR}/src/spark-store" ]; then
|
||||||
|
echo "✓ 主应用编译成功"
|
||||||
|
ls -lh "${BUILD_DIR}/src/spark-store"
|
||||||
|
else
|
||||||
|
echo "✗ 主应用编译失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "${BUILD_DIR}/spark-update-tool/spark-update-tool" ]; then
|
||||||
|
echo "✓ 更新工具编译成功"
|
||||||
|
ls -lh "${BUILD_DIR}/spark-update-tool/spark-update-tool"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
65
build-qt6.sh
Executable file
65
build-qt6.sh
Executable file
@@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Qt6 编译脚本
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
BUILD_DIR="${PROJECT_ROOT}/build/qt6-Debug"
|
||||||
|
|
||||||
|
echo "================================"
|
||||||
|
echo "Qt6 编译脚本"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 检查 Qt6 qmake
|
||||||
|
if ! command -v /usr/lib/qt6/bin/qmake6 &> /dev/null; then
|
||||||
|
echo "错误: 未找到 Qt6 qmake6"
|
||||||
|
echo "请确保 Qt6 已安装: /usr/lib/qt6/bin/qmake6"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Qt6 版本:"
|
||||||
|
/usr/lib/qt6/bin/qmake6 --version
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 创建构建目录
|
||||||
|
echo "创建构建目录: ${BUILD_DIR}"
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
mkdir -p "${BUILD_DIR}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 生成 Makefile
|
||||||
|
echo "生成 Makefile..."
|
||||||
|
cd "${BUILD_DIR}"
|
||||||
|
/usr/lib/qt6/bin/qmake6 "${PROJECT_ROOT}/spark-store-project.pro" -r CONFIG+=debug
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 编译
|
||||||
|
echo "开始编译..."
|
||||||
|
make -j$(nproc)
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "================================"
|
||||||
|
echo "Qt6 编译完成!"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
echo "可执行文件位置:"
|
||||||
|
echo " 主应用: ${BUILD_DIR}/src/spark-store"
|
||||||
|
echo " 更新工具: ${BUILD_DIR}/spark-update-tool/spark-update-tool"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 验证编译结果
|
||||||
|
if [ -f "${BUILD_DIR}/src/spark-store" ]; then
|
||||||
|
echo "✓ 主应用编译成功"
|
||||||
|
ls -lh "${BUILD_DIR}/src/spark-store"
|
||||||
|
else
|
||||||
|
echo "✗ 主应用编译失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "${BUILD_DIR}/spark-update-tool/spark-update-tool" ]; then
|
||||||
|
echo "✓ 更新工具编译成功"
|
||||||
|
ls -lh "${BUILD_DIR}/spark-update-tool/spark-update-tool"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
57
build-run-qt5.sh
Executable file
57
build-run-qt5.sh
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Qt5 编译和运行脚本
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
BUILD_DIR="${PROJECT_ROOT}/build/qt5-Debug"
|
||||||
|
|
||||||
|
echo "================================"
|
||||||
|
echo "Qt5 编译和运行脚本"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 检查 Qt5 qmake
|
||||||
|
if ! command -v /usr/lib/qt5/bin/qmake &> /dev/null; then
|
||||||
|
echo "错误: 未找到 Qt5 qmake"
|
||||||
|
echo "请确保 Qt5 已安装: /usr/lib/qt5/bin/qmake"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Qt5 版本:"
|
||||||
|
/usr/lib/qt5/bin/qmake --version
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 创建构建目录
|
||||||
|
echo "创建构建目录: ${BUILD_DIR}"
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
mkdir -p "${BUILD_DIR}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 生成 Makefile
|
||||||
|
echo "生成 Makefile..."
|
||||||
|
cd "${BUILD_DIR}"
|
||||||
|
/usr/lib/qt5/bin/qmake "${PROJECT_ROOT}/spark-store-project.pro" -r CONFIG+=debug
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 编译
|
||||||
|
echo "开始编译..."
|
||||||
|
make -j$(nproc)
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "✓ 编译完成!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 运行应用
|
||||||
|
SPARK_STORE="${BUILD_DIR}/src/spark-store"
|
||||||
|
|
||||||
|
if [ -f "${SPARK_STORE}" ]; then
|
||||||
|
echo "================================"
|
||||||
|
echo "启动 spark-store(Qt5)"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
"${SPARK_STORE}"
|
||||||
|
else
|
||||||
|
echo "错误: spark-store 未找到"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
57
build-run-qt6.sh
Executable file
57
build-run-qt6.sh
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Qt6 编译和运行脚本
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
BUILD_DIR="${PROJECT_ROOT}/build/qt6-Debug"
|
||||||
|
|
||||||
|
echo "================================"
|
||||||
|
echo "Qt6 编译和运行脚本"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 检查 Qt6 qmake
|
||||||
|
if ! command -v /usr/lib/qt6/bin/qmake6 &> /dev/null; then
|
||||||
|
echo "错误: 未找到 Qt6 qmake6"
|
||||||
|
echo "请确保 Qt6 已安装: /usr/lib/qt6/bin/qmake6"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Qt6 版本:"
|
||||||
|
/usr/lib/qt6/bin/qmake6 --version
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 创建构建目录
|
||||||
|
echo "创建构建目录: ${BUILD_DIR}"
|
||||||
|
rm -rf "${BUILD_DIR}"
|
||||||
|
mkdir -p "${BUILD_DIR}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 生成 Makefile
|
||||||
|
echo "生成 Makefile..."
|
||||||
|
cd "${BUILD_DIR}"
|
||||||
|
/usr/lib/qt6/bin/qmake6 "${PROJECT_ROOT}/spark-store-project.pro" -r CONFIG+=debug
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 编译
|
||||||
|
echo "开始编译..."
|
||||||
|
make -j$(nproc)
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "✓ 编译完成!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 运行应用
|
||||||
|
SPARK_STORE="${BUILD_DIR}/src/spark-store"
|
||||||
|
|
||||||
|
if [ -f "${SPARK_STORE}" ]; then
|
||||||
|
echo "================================"
|
||||||
|
echo "启动 spark-store(Qt6)"
|
||||||
|
echo "================================"
|
||||||
|
echo ""
|
||||||
|
"${SPARK_STORE}"
|
||||||
|
else
|
||||||
|
echo "错误: spark-store 未找到"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user