添加需求规格说明书和完整文档

This commit is contained in:
虾哥
2026-04-09 10:20:17 -04:00
parent 19296b7337
commit 7c81d53b3a

540
需求规格说明书.md Normal file
View File

@@ -0,0 +1,540 @@
# VoiletCStudio 需求规格说明书
**版本号:** v1.0
**项目名称:** 紫罗兰 C 工程配置器VoiletCStudio
**开发日期:** 2026-04-09
**作者:** 虾哥
---
## 📋 目录
1. [项目概述](#1-项目概述)
2. [功能需求](#2-功能需求)
3. [界面设计](#3-界面设计)
4. [技术规格](#4-技术规格)
5. [使用说明](#5-使用说明)
6. [文件结构](#6-文件结构)
7. [配置文件格式](#7-配置文件格式)
8. [编译流程](#8-编译流程)
---
## 1. 项目概述
### 1.1 项目背景
VoiletCStudio 是一款跨平台的 C 工程配置工具,旨在简化 C 语言项目的构建流程。通过图形化界面管理工程配置,自动生成 CMakeLists.txt 文件,支持一键编译 Debug 和 Release 版本。
### 1.2 目标用户
- C 语言开发者
- 嵌入式系统开发人员
- 需要跨平台编译的项目团队
- 从 IDE 迁移到 CMake 的开发者
### 1.3 核心价值
- **简化配置**:图形化界面替代手动编写 CMakeLists.txt
- **跨平台支持**Windows (MinGW) / Linux (GCC) / macOS (Clang)
- **提高效率**:一键生成和编译,减少重复劳动
- **易于上手**:类似 MDK 的虚拟目录管理,降低学习成本
---
## 2. 功能需求
### 2.1 工程文件管理
| 功能 ID | 功能名称 | 功能描述 | 优先级 |
|--------|---------|---------|--------|
| F-001 | 新建工程 | 创建新的 C 工程配置 | 高 |
| F-002 | 打开工程 | 加载已保存的 JSON 配置文件 | 高 |
| F-003 | 保存工程 | 保存当前配置到 JSON 文件 | 高 |
| F-004 | 另存为 | 将工程保存到指定位置 | 中 |
| F-005 | 拖拽打开 | 拖拽 JSON 文件到窗口打开工程 | 中 |
### 2.2 编译工具链配置
| 功能 ID | 功能名称 | 功能描述 | 优先级 |
|--------|---------|---------|--------|
| F-010 | 编译器配置 | 设置 C 编译器路径gcc/clang 等) | 高 |
| F-011 | 汇编器配置 | 设置汇编器路径 | 中 |
| F-012 | 链接器配置 | 设置链接器路径 | 中 |
### 2.3 文件管理
| 功能 ID | 功能名称 | 功能描述 | 优先级 |
|--------|---------|---------|--------|
| F-020 | 虚拟目录 | 创建类似 MDK 的虚拟文件夹 | 高 |
| F-021 | 源文件管理 | 添加/移除 .c 源文件 | 高 |
| F-022 | 包含目录 | 添加/移除 .h 头文件目录 | 高 |
| F-023 | 库文件管理 | 添加/移除 .a/.so/.lib 库文件 | 高 |
### 2.4 编译配置
| 功能 ID | 功能名称 | 功能描述 | 优先级 |
|--------|---------|---------|--------|
| F-030 | 编译宏 | 添加/移除预编译宏定义 | 高 |
| F-031 | 编译选项 | 添加/移除自定义编译参数 | 中 |
### 2.5 CMake 生成
| 功能 ID | 功能名称 | 功能描述 | 优先级 |
|--------|---------|---------|--------|
| F-040 | 生成 CMake | 自动生成 CMakeLists.txt 文件 | 高 |
| F-041 | 命令提示 | 显示编译命令使用说明 | 高 |
### 2.6 编译功能
| 功能 ID | 功能名称 | 功能描述 | 优先级 |
|--------|---------|---------|--------|
| F-050 | 编译 Debug | 编译 Debug 版本(带调试信息) | 高 |
| F-051 | 编译 Release | 编译 Release 版本(优化发布) | 高 |
| F-052 | 实时输出 | 显示编译过程实时日志 | 高 |
| F-053 | 自动清理 | 编译前自动清空 build 目录 | 高 |
---
## 3. 界面设计
### 3.1 主界面布局
```
┌─────────────────────────────────────────────────────────────┐
│ VoiletCStudio - C 工程配置器 │
├─────────────────────────────────────────────────────────────┤
│ ⚡ 快捷操作 │
│ [📂 打开] [📄 新建] [💾 保存] [🔨 生成 CMake] [🐛 编译 Debug] [🚀 编译 Release] │
├─────────────────────────────────────────────────────────────┤
│ 📁 工程基本信息 │
│ 工程名:[____________] │
├─────────────────────────────────────────────────────────────┤
│ 🔧 编译工具链 │
│ 编译器:[____] 汇编器:[____] 链接器:[____] │
├─────────────────────────────────────────────────────────────┤
│ 📁 源文件 │ 📦 库文件 │
│ ├─ 📁 App │ ├─ libmylib.a │
│ │ ├─ main.c │ 🏷️ 编译宏 │
│ │ └─ utils.c │ ├─ DEBUG │
│ 📚 包含目录 │ ⚙️ 编译选项 │
│ ├─ ./include │ ├─ -Wall │
├─────────────────────────────────────────────────────────────┤
│ 就绪 [状态栏] │
└─────────────────────────────────────────────────────────────┘
```
### 3.2 按钮说明
| 按钮 | 颜色 | 功能 | 快捷键 |
|------|------|------|--------|
| 📂 打开工程 | 🔵 蓝色 | 打开已有工程 | Ctrl+O |
| 📄 新建工程 | 🟢 绿色 | 创建新工程 | Ctrl+N |
| 💾 保存工程 | 🟠 橙色 | 保存配置 | Ctrl+S |
| 🔨 生成 CMake | 🟣 紫色 | 生成 CMakeLists.txt | Ctrl+G |
| 🐛 编译 Debug | 🔵 青色 | 编译 Debug 版本 | - |
| 🚀 编译 Release | 🌸 粉色 | 编译 Release 版本 | - |
---
## 4. 技术规格
### 4.1 开发环境
| 项目 | 规格 |
|------|------|
| 开发语言 | C++ 11 |
| GUI 框架 | Qt 5 |
| 构建系统 | qmake |
| 目标平台 | Windows / Linux / macOS |
### 4.2 系统要求
| 项目 | 最低要求 | 推荐配置 |
|------|---------|---------|
| 操作系统 | Windows 7 / Ubuntu 18.04 / macOS 10.14 | Windows 10 / Ubuntu 20.04 / macOS 11+ |
| 内存 | 512 MB | 2 GB |
| 磁盘空间 | 100 MB | 500 MB |
| 编译器 | GCC 5.0+ / MinGW / Clang | GCC 9.0+ / MinGW-w64 / Clang 10+ |
### 4.3 依赖库
| 库名称 | 版本 | 用途 |
|--------|------|------|
| Qt Core | 5.12+ | 核心功能 |
| Qt GUI | 5.12+ | 图形界面 |
| Qt Widgets | 5.12+ | 窗口组件 |
| CMake | 3.10+ | 构建系统 |
| GCC/MinGW | 5.0+ | C 编译器 |
---
## 5. 使用说明
### 5.1 快速开始
#### 步骤 1新建工程
1. 点击【📄 新建工程】按钮
2. 输入工程名称
3. 点击【💾 保存工程】,选择保存位置
#### 步骤 2配置工具链
1. 点击编译器旁的【浏览】按钮
2. 选择编译器路径(如 `/usr/bin/gcc`
3. 同样配置汇编器和链接器(通常与编译器相同)
#### 步骤 3添加源文件
1. 点击【➕ 目录】创建虚拟文件夹(如 "App"
2. 选中目录,点击【➕ 文件】添加 .c 文件
3. 重复添加所有源文件
#### 步骤 4配置包含目录
1. 切换到右侧"包含目录"面板
2. 点击【➕ 添加】选择头文件目录
3. 添加所有需要的包含路径
#### 步骤 5添加库文件可选
1. 切换到"库文件"面板
2. 点击【➕ 添加】选择 .a/.so/.lib 文件
3. 添加所有依赖库
#### 步骤 6配置编译选项
1. 切换到"编译宏"面板
2. 点击【➕ 添加】输入宏定义(如 `DEBUG`
3. 切换到"编译选项"面板
4. 添加自定义编译参数(如 `-Wall`
#### 步骤 7生成 CMake
1. 点击【🔨 生成 CMake】按钮
2. 查看弹出的编译命令提示
3. CMakeLists.txt 已生成到工程目录
#### 步骤 8编译工程
**方式一:使用内置编译**
1. 点击【🐛 编译 Debug】或【🚀 编译 Release】
2. 查看编译输出窗口
3. 编译完成后查看结果
**方式二:手动编译**
```bash
cd build
make debug # 编译 Debug 版本
make release # 编译 Release 版本
```
---
## 6. 文件结构
### 6.1 工程目录结构
```
MyProject/
├── config.json # 工程配置文件
├── CMakeLists.txt # CMake 配置文件(自动生成)
├── build/ # 编译输出目录(自动生成)
│ ├── Makefile # Makefile自动生成
│ ├── debug/ # Debug 编译产物
│ │ └── MyProject # Debug 可执行文件
│ └── release/ # Release 编译产物
│ └── MyProject # Release 可执行文件
├── src/ # 源文件目录(用户创建)
│ ├── main.c
│ └── utils.c
└── include/ # 头文件目录(用户创建)
└── utils.h
```
### 6.2 源代码结构
```
VoiletCStudio/
├── src/
│ ├── main.cpp # 程序入口
│ ├── mainwindow.cpp/h # 主窗口实现
│ ├── projectconfig.cpp/h # 配置管理
│ └── cmakegenerator.cpp/h # CMake 生成
├── VoiletCStudio.pro # Qt 项目文件
├── README.md # 使用说明
└── 需求规格说明书.md # 本文档
```
---
## 7. 配置文件格式
### 7.1 JSON 配置示例
```json
{
"projectName": "MyProject",
"projectPath": "/home/anonymous/Desktop/MyProject",
"compilerPath": "/usr/bin/gcc",
"assemblerPath": "/usr/bin/gcc",
"linkerPath": "/usr/bin/gcc",
"outputDir": "./build",
"virtualDirs": {
"App": {
"name": "App",
"files": [
"/home/anonymous/Desktop/MyProject/src/main.c",
"/home/anonymous/Desktop/MyProject/src/utils.c"
]
},
"Drivers": {
"name": "Drivers",
"files": [
"/home/anonymous/Desktop/MyProject/src/drivers/driver.c"
]
}
},
"includeDirs": [
"/home/anonymous/Desktop/MyProject/include"
],
"libraries": [
"/usr/lib/libmylib.a"
],
"defines": [
"DEBUG",
"VERSION=1.0"
],
"compilerOptions": [
"-Wall",
"-Wextra"
]
}
```
### 7.2 字段说明
| 字段名 | 类型 | 说明 | 必填 |
|--------|------|------|------|
| projectName | string | 工程名称 | 是 |
| projectPath | string | 工程路径 | 是 |
| compilerPath | string | 编译器路径 | 是 |
| assemblerPath | string | 汇编器路径 | 否 |
| linkerPath | string | 链接器路径 | 否 |
| outputDir | string | 输出目录 | 否 |
| virtualDirs | object | 虚拟目录配置 | 是 |
| includeDirs | array | 包含目录列表 | 否 |
| libraries | array | 库文件列表 | 否 |
| defines | array | 编译宏列表 | 否 |
| compilerOptions | array | 编译选项列表 | 否 |
---
## 8. 编译流程
### 8.1 CMake 生成流程
```
用户点击【生成 CMake】
读取工程配置JSON
生成 CMakeLists.txt
显示编译命令提示
完成
```
### 8.2 编译执行流程
```
用户点击【编译 Debug/Release】
保存工程配置
删除旧的 build 目录
创建新的 build 目录
生成 CMakeLists.txt
执行 cmake -DCMAKE_BUILD_TYPE=Debug/Release ..
执行 make debug/release
实时显示编译输出
显示编译结果
完成
```
### 8.3 CMakeLists.txt 结构
```cmake
# ========================================
# CMakeLists.txt - VoiletCStudio 自动生成
# 工程名称MyProject
# 生成时间2026-04-09 10:00:00
# 跨平台支持Windows (MinGW) / Linux (GCC) / macOS (Clang)
# ========================================
cmake_minimum_required(VERSION 3.10)
# 项目名称
project(MyProject C)
# C 标准
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# 输出目录配置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/./build)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/./build)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/./build)
# 编译器配置
set(CMAKE_C_COMPILER "/usr/bin/gcc")
# ========================================
# 源文件配置(虚拟目录结构)
# ========================================
# 分组App
set(SRCS_App
/home/anonymous/Desktop/MyProject/src/main.c
/home/anonymous/Desktop/MyProject/src/utils.c
)
# 分组Drivers
set(SRCS_Drivers
/home/anonymous/Desktop/MyProject/src/drivers/driver.c
)
# 合并所有源文件
set(SOURCES
/home/anonymous/Desktop/MyProject/src/main.c
/home/anonymous/Desktop/MyProject/src/utils.c
/home/anonymous/Desktop/MyProject/src/drivers/driver.c
)
# 创建可执行文件
add_executable(MyProject ${SOURCES})
# 包含目录
target_include_directories(MyProject PRIVATE
/home/anonymous/Desktop/MyProject/include
)
# 链接库
target_link_libraries(MyProject PRIVATE
/usr/lib/libmylib.a
)
# 预编译宏定义
target_compile_definitions(MyProject PRIVATE
DEBUG
VERSION=1.0
)
# 自定义编译选项
target_compile_options(MyProject PRIVATE
-Wall
-Wextra
)
# ========================================
# 构建类型配置
# ========================================
# 默认构建类型Debug
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type" FORCE)
endif()
# Debug 模式配置(自动添加 DEBUG 宏)
set(CMAKE_C_FLAGS_DEBUG "-g -O0 -DDEBUG" CACHE STRING "Debug flags" FORCE)
# Release 模式配置
set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Release flags" FORCE)
# ========================================
# 自定义 Make 目标make debug / make release
# ========================================
# make debug - 编译 Debug 版本(自动添加 DEBUG 宏)
add_custom_target(debug
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --config Debug
COMMENT "Building Debug version"
VERBATIM
)
# make release - 编译 Release 版本
add_custom_target(release
COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --config Release
COMMENT "Building Release version"
VERBATIM
)
# 使用说明:
# cmake -B build # 配置(默认 Debug
# cmake --build build # 编译(使用当前 CMAKE_BUILD_TYPE
# make debug # 编译 Debug 版本(自动添加 DEBUG 宏)
# make release # 编译 Release 版本
```
---
## 9. 常见问题
### 9.1 编译失败
**问题:** 点击编译后提示找不到编译器
**解决:**
1. 检查编译器路径是否正确
2. 确认编译器已安装(`gcc --version`
3. Windows 用户确认 MinGW 已正确安装
### 9.2 CMake 生成失败
**问题:** 点击生成 CMake 无反应
**解决:**
1. 检查工程是否已保存
2. 确认保存路径有写入权限
3. 查看状态栏错误提示
### 9.3 拖拽无反应
**问题:** 拖拽 JSON 文件到窗口没反应
**解决:**
1. 确认文件扩展名为 `.json`
2. 确认文件是有效的工程配置
3. 尝试使用"打开工程"按钮
---
## 10. 版本历史
| 版本 | 日期 | 更新内容 |
|------|------|---------|
| v1.0 | 2026-04-09 | 初始版本,完整功能发布 |
---
## 11. 联系方式
- **作者:** 虾哥
- **邮箱:** anonymous@linuxacme.com
- **项目地址:** https://git.linuxacme.com/iorebuild/VoiletCStudio.git
---
**文档版本:** v1.0
**最后更新:** 2026-04-09