Files
VoiletCStudio/需求规格说明书.md
2026-04-09 10:20:17 -04:00

16 KiB
Raw Permalink Blame History

VoiletCStudio 需求规格说明书

版本号: v1.0
项目名称: 紫罗兰 C 工程配置器VoiletCStudio
开发日期: 2026-04-09
作者: 虾哥


📋 目录

  1. 项目概述
  2. 功能需求
  3. 界面设计
  4. 技术规格
  5. 使用说明
  6. 文件结构
  7. 配置文件格式
  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. 编译完成后查看结果

方式二:手动编译

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 配置示例

{
    "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 结构

# ========================================
# 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. 联系方式


文档版本: v1.0
最后更新: 2026-04-09