From 8476e97eff6634c0446791d6412b903ae0ae1529 Mon Sep 17 00:00:00 2001 From: "cstcst1221@@163.com" Date: Tue, 8 Sep 2026 13:22:19 +0800 Subject: [PATCH] fix(docs): correct code block display error in documentation --- document/development/01_prerequisites.md | 50 ++++----- document/development/02_quick_start.md | 26 ++--- document/development/03_build_system.md | 70 ++++++------- document/development/04_development_tools.md | 16 +-- document/development/05_docker_build.md | 44 ++++---- document/development/06_git_hooks.md | 28 ++--- document/development/07_troubleshooting.md | 102 +++++++++---------- document/status/current.md | 9 +- 8 files changed, 173 insertions(+), 172 deletions(-) diff --git a/document/development/01_prerequisites.md b/document/development/01_prerequisites.md index b2337fe4d..6b67df494 100644 --- a/document/development/01_prerequisites.md +++ b/document/development/01_prerequisites.md @@ -143,7 +143,7 @@ sudo usermod -aG docker $USER # 8. 验证安装 docker --version docker compose version -```yaml +``` #### 配置建议 @@ -192,7 +192,7 @@ sudo apt install -y git # 验证安装 git --version -```text +``` #### 配置建议 @@ -207,7 +207,7 @@ git config --global core.autocrlf true # Linux/Mac 下配置行尾处理 git config --global core.autocrlf input -```yaml +``` --- @@ -255,7 +255,7 @@ sudo snap install --classic code # 验证安装 code --version -```bash +``` #### 配置建议 @@ -323,7 +323,7 @@ pip install aqtinstall # 或使用 pipx(推荐) pipx install aqtinstall -```text +``` **Windows 安装 Qt6**: @@ -333,7 +333,7 @@ aqt install-qt windows desktop 6.8.3 mingw-win64-everywhere -O C:\Qt # 或安装 LLVM 编译器版本 aqt install-qt windows desktop 6.8.3 llvm-mingw-win64-everywhere -O C:\Qt -```text +``` **Linux 安装 Qt6**: @@ -343,14 +343,14 @@ aqt install-qt linux desktop 6.8.3 gcc_64 -O ~/Qt # 安装到系统目录(需要 sudo) sudo aqt install-qt linux desktop 6.8.3 gcc_64 -O /opt/Qt -```text +``` **ARM64 架构安装**: ```bash # Linux ARM64 aqt install-qt linux desktop 6.8.3 linux_gcc_64 -O ~/Qt -```text +``` #### 验证安装 @@ -361,7 +361,7 @@ C:\Qt\6.8.3\mingw_64\bin\qmake.exe --version # Linux ~/Qt/6.8.3/gcc_64/bin/qmake --version -```text +``` #### 环境变量配置 @@ -373,7 +373,7 @@ C:\Qt\6.8.3\mingw_64\bin\qmake.exe --version QTDIR=C:\Qt\6.8.3\mingw_64 QTDIR_BIN=C:\Qt\6.8.3\mingw_64\bin CMAKE_PREFIX_PATH=C:\Qt\6.8.3\mingw_64 -```text +``` 并将 `%QTDIR_BIN%` 添加到 PATH。 @@ -386,7 +386,7 @@ export QTDIR=~/Qt/6.8.3/gcc_64 export QTDIR_BIN=$QTDIR/bin export PATH=$QTDIR_BIN:$PATH export CMAKE_PREFIX_PATH=$QTDIR -```yaml +``` 然后执行 `source ~/.bashrc` 使配置生效。 @@ -401,12 +401,12 @@ CMake 用于构建项目,Docker 镜像中已包含。如需本地安装: **Windows**: ```powershell winget install Kitware.CMake -```text +``` **Linux**: ```bash sudo apt install -y cmake -```text +``` ### ccache @@ -415,19 +415,19 @@ ccache 可以加速重复编译: **Windows**: ```powershell winget install ccache -```text +``` **Linux**: ```bash sudo apt install -y ccache -```text +``` 配置 ccache(可选): ```bash # 配置缓存目录 ccache -M 10G # 设置缓存大小为 10GB -```text +``` ### Ninja @@ -436,12 +436,12 @@ Ninja 是一个更快的构建工具: **Windows**: ```powershell winget install ninja -```text +``` **Linux**: ```bash sudo apt install -y ninja-build -```yaml +``` --- @@ -509,7 +509,7 @@ Write-Host "" # 运行验证 .\verify_env.ps1 -```text +``` ### Linux 验证脚本 @@ -564,7 +564,7 @@ echo -e "\033[33m请手动验证 Qt6 安装:\033[0m" echo " 运行: \`/bin/qmake --version\`" echo " 应显示: Qt version 6.8.3" echo "" -```yaml +``` --- @@ -586,14 +586,14 @@ echo "" ```powershell # 检查虚拟化状态 systeminfo | find "Virtualization" -```text +``` **A (Linux)**: 确保 Docker 服务已启动。 ```bash sudo systemctl start docker sudo systemctl enable docker -```text +``` ### Q2: aqtinstall 下载速度太慢怎么办? @@ -602,7 +602,7 @@ sudo systemctl enable docker ```bash # 使用清华大学镜像 aqt install-qt windows desktop 6.8.3 mingw_64 -O C:\Qt -b https://mirrors.tuna.tsinghua.edu.cn/qt -```text +``` ### Q3: Windows 下安装 Qt 时提示缺少运行库? @@ -610,7 +610,7 @@ aqt install-qt windows desktop 6.8.3 mingw_64 -O C:\Qt -b https://mirrors.tuna.t ```text https://aka.ms/vs/17/release/vc_redist.x64.exe -```text +``` ### Q4: 可以使用系统包管理器安装 Qt 吗? @@ -619,7 +619,7 @@ https://aka.ms/vs/17/release/vc_redist.x64.exe ```bash # Ubuntu/Debian sudo apt install qt6-base-dev qt6-tools-dev -```bash +``` 建议使用 aqtinstall 安装特定版本的 Qt6。 diff --git a/document/development/02_quick_start.md b/document/development/02_quick_start.md index 3d49c7ee2..c7d65fe8c 100644 --- a/document/development/02_quick_start.md +++ b/document/development/02_quick_start.md @@ -51,7 +51,7 @@ description: 30 分钟内搭建 CFDesktop 开发环境 ```bash git clone https://github.com/Awesome-Embedded-Learning-Studio/CFDesktop.git cd CFDesktop -```bash +``` ### 第 2 步:安装 VSCode 扩展 @@ -77,7 +77,7 @@ cd CFDesktop ```bash # Fast build (reuses existing image if available) bash scripts/build_helpers/docker_start.sh --fast-build --build-project-fast -```bash +``` **此命令会执行以下操作:** 1. 构建(或复用)包含所有依赖的 Docker 镜像 @@ -110,7 +110,7 @@ bash scripts/build_helpers/docker_start.sh --fast-build --build-project-fast # CPU Information Demo .\out\build_develop\examples\base\cpu_info.exe -```text +``` **Linux:** ```bash @@ -122,7 +122,7 @@ bash scripts/build_helpers/docker_start.sh --fast-build --build-project-fast # CPU Information Demo ./out/build_develop/examples/base/cpu_info -```bash +``` **可用示例:** @@ -139,17 +139,17 @@ bash scripts/build_helpers/docker_start.sh --fast-build --build-project-fast **Windows:** ```powershell .\scripts\build_helpers\windows_run_tests.ps1 -```text +``` **Linux:** ```bash bash scripts/build_helpers/linux_run_tests.sh -```text +``` **Docker:** ```bash bash scripts/build_helpers/docker_start.sh --run-project-test -```bash +``` --- @@ -209,7 +209,7 @@ CFDesktop 的构建脚本为 Unix 风格的 shell 设计。在 Windows 上,请 # Run tests .\scripts\build_helpers\windows_run_tests.ps1 -```yaml +``` --- @@ -223,14 +223,14 @@ docker --version # Verify Docker daemon is running docker info -```text +``` 预期输出: ```text Docker version 20.10.x ... Server Version: 20.10.x -```text +``` ### 检查构建是否成功 @@ -251,7 +251,7 @@ out/build_develop/ │ └── gui/ # GUI examples ├── runtimes/ # Qt runtime DLLs (Windows) └── test/ # Test executables -```text +``` ### 检查构建日志 @@ -263,7 +263,7 @@ ls -lt scripts/docker/logger/ # View the latest log cat scripts/docker/logger/ci_build_*.log | tail -50 -```bash +``` --- @@ -336,7 +336,7 @@ bash scripts/build_helpers/docker_start.sh # Build specific architecture bash scripts/build_helpers/docker_start.sh --arch arm64 --verify -```bash +``` ### 配置文件 diff --git a/document/development/03_build_system.md b/document/development/03_build_system.md index 5af5bffdd..d35bdf94e 100644 --- a/document/development/03_build_system.md +++ b/document/development/03_build_system.md @@ -54,7 +54,7 @@ CFDesktop Build System ├── windows/gcc-toolchain.cmake ├── linux/ci-x86_64-toolchain.cmake └── linux/ci-aarch64-toolchain.cmake -```yaml +``` --- @@ -92,7 +92,7 @@ add_subdirectory(base) add_subdirectory(ui) add_subdirectory(example) add_subdirectory(test) -```text +``` ### CMake 模块结构 @@ -105,7 +105,7 @@ cmake/ ├── ExampleLauncher.cmake # Windows launcher generation ├── QtDeployUtils.cmake # Qt deployment utilities └── generate_develop_helpers.cmake # IDE configuration generation -```bash +``` --- @@ -139,7 +139,7 @@ base/ └── system/ ├── cpu/CMakeLists.txt # CPU module └── memory/CMakeLists.txt # Memory module -```text +``` **统一 Base 库:** 所有 base 组件链接为一个单独的共享库(Windows 上为 `cfbase.dll`,Linux 上为 `libcfbase.so`)。 @@ -152,7 +152,7 @@ target_sources(cfbase PRIVATE $ ) target_link_libraries(cfbase PUBLIC Qt6::Core) -```text +``` ### UI 模块 @@ -180,7 +180,7 @@ ui/ ├── label/ ├── textfield/ └── ... -```text +``` **统一 UI 库:** 所有 UI 组件链接为一个单独的共享库(Windows 上为 `cfui.dll`,Linux 上为 `libcfui.so`)。 @@ -197,7 +197,7 @@ target_link_libraries(cfui PUBLIC Qt6::Core Qt6::Gui ) -```bash +``` --- @@ -218,7 +218,7 @@ target_link_libraries(cfui PUBLIC ```ini [cmake] build_type=Debug # or Release, RelWithDebInfo -```bash +``` **配置文件:** @@ -240,7 +240,7 @@ CFDesktop 支持工具链选择的简写表示法: cmake -DUSE_TOOLCHAIN=windows/llvm -S . -B build cmake -DUSE_TOOLCHAIN=windows/gcc -S . -B build cmake -DUSE_TOOLCHAIN=linux/ci-x86_64 -S . -B build -```bash +``` ### 可用工具链 @@ -263,7 +263,7 @@ cmake/cmake_toolchain/ └── linux/ ├── ci-x86_64-toolchain.cmake └── ci-aarch64-toolchain.cmake -```text +``` ### Windows LLVM-MinGW 工具链 @@ -272,7 +272,7 @@ cmake/cmake_toolchain/ set(CMAKE_PREFIX_PATH "D:/QT/Qt6.6.0/6.8.3/llvm-mingw_64") set(CMAKE_C_COMPILER "D:/QT/Qt6.6.0/Tools/llvm-mingw1706_64/bin/gcc.exe") set(CMAKE_CXX_COMPILER "D:/QT/Qt6.6.0/Tools/llvm-mingw1706_64/bin/g++.exe") -```text +``` ### Linux CI 工具链 @@ -282,7 +282,7 @@ set(CMAKE_SYSTEM_NAME Linux) set(QT6_BASE_DIR "/opt/Qt/6.8.1/gcc_64") set(Qt6_DIR "${QT6_BASE_DIR}/lib/cmake/Qt6") set(CMAKE_PREFIX_PATH "${QT6_BASE_DIR}") -```yaml +``` --- @@ -305,7 +305,7 @@ scripts/build_helpers/ │ ├── linux_develop_build.sh │ └── linux_run_tests.sh └── docker_start.sh # Docker wrapper script -```text +``` ### Windows 构建脚本 @@ -314,7 +314,7 @@ scripts/build_helpers/ ```powershell # Configure only (no build) .\scripts\build_helpers\windows_configure.ps1 [-Config ] -```text +``` **该脚本执行以下操作:** 1. 从 `.ini` 文件加载配置 @@ -327,7 +327,7 @@ scripts/build_helpers/ ```powershell # Fast incremental build .\scripts\build_helpers\windows_fast_develop_build.ps1 -```text +``` **该脚本执行以下操作:** 1. 调用配置脚本 @@ -339,7 +339,7 @@ scripts/build_helpers/ ```powershell # Full clean build .\scripts\build_helpers\windows_develop_build.ps1 -```text +``` **该脚本执行以下操作:** 1. 清理构建目录 @@ -353,21 +353,21 @@ scripts/build_helpers/ ```bash # Configure only bash scripts/build_helpers/linux_configure.sh [develop|deploy|ci] [-c ] -```text +``` #### 快速构建脚本 ```bash # Fast incremental build bash scripts/build_helpers/linux_fast_develop_build.sh [develop|deploy|ci] -```text +``` #### 完整构建脚本 ```bash # Full clean build bash scripts/build_helpers/linux_develop_build.sh [develop|deploy|ci] -```text +``` ### Docker 构建脚本 @@ -389,7 +389,7 @@ bash scripts/build_helpers/docker_start.sh --verify # ARM64 build bash scripts/build_helpers/docker_start.sh --arch arm64 --verify -```bash +``` **Docker 选项:** @@ -438,7 +438,7 @@ out/build_{config}/ ├── base_test ├── ui_test └── ... -```text +``` ### 输出目录配置 @@ -456,7 +456,7 @@ function(cf_set_example_output_dir TARGET_NAME CATEGORY) RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/examples/${CATEGORY}" ) endfunction() -```yaml +``` --- @@ -487,7 +487,7 @@ build_dir=out/build_develop [options] # Parallel jobs for compilation jobs=16 -```bash +``` ### CMake 选项 @@ -512,13 +512,13 @@ jobs=16 ```bash cmake -DUSE_TOOLCHAIN=windows/mytoolchain -S . -B build -```text +``` 或使用完整路径: ```bash cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake -S . -B build -```text +``` ### 增量构建 @@ -527,12 +527,12 @@ cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake -S . -B build **Linux:** ```bash bash scripts/build_helpers/linux_fast_develop_build.sh -```text +``` **Windows:** ```powershell .\scripts\build_helpers\windows_fast_develop_build.ps1 -```text +``` ### 并行构建 @@ -541,13 +541,13 @@ bash scripts/build_helpers/linux_fast_develop_build.sh ```ini [options] jobs=8 # Use 8 parallel jobs -```text +``` 或通过 CMake: ```bash cmake --build build --parallel 8 -```text +``` ### 构建特定目标 @@ -557,7 +557,7 @@ cmake --build build --parallel 8 cmake --build build --target cfbase cmake --build build --target cfui cmake --build build --target material_gallery -```text +``` ### 清理构建 @@ -566,12 +566,12 @@ cmake --build build --target material_gallery **Linux:** ```bash bash scripts/build_helpers/linux_develop_build.sh -```text +``` **Windows:** ```powershell .\scripts\build_helpers\windows_develop_build.ps1 -```text +``` 或手动执行: @@ -579,7 +579,7 @@ bash scripts/build_helpers/linux_develop_build.sh rm -rf out/build_develop cmake -DUSE_TOOLCHAIN=windows/llvm -DCMAKE_BUILD_TYPE=Debug -S . -B out/build_develop cmake --build out/build_develop -```cpp +``` --- @@ -651,7 +651,7 @@ QtCreator 可以直接打开项目: ```ini [cmake] build_type=Debug -```text +``` 这将: - 禁用优化(`-O0`) @@ -665,7 +665,7 @@ build_type=Debug ```ini [cmake] build_type=Release -```yaml +``` 这将: - 启用最大优化(`-O3`) diff --git a/document/development/04_development_tools.md b/document/development/04_development_tools.md index 33e41589e..becd50286 100644 --- a/document/development/04_development_tools.md +++ b/document/development/04_development_tools.md @@ -37,7 +37,7 @@ description: 本文档介绍 CFDesktop 项目推荐的开发工具配置,包 "--ranking-model=decision_forest" ] } -```bash +``` **参数说明:** @@ -59,7 +59,7 @@ description: 本文档介绍 CFDesktop 项目推荐的开发工具配置,包 # Windows (Develop 配置) cmake -B out/build_develop -DCMAKE_BUILD_TYPE=Develop # 生成 out/build_develop/compile_commands.json -```cpp +``` --- @@ -120,7 +120,7 @@ code --install-extension llvm-vs-code-extensions.vscode-clangd code --install-extension ms-vscode.cmake-tools code --install-extension twxs.cmake code --install-extension qt-labs.qt-all -```yaml +``` --- @@ -150,7 +150,7 @@ DerivePointerAlignment: false Language: Cpp Standard: c++17 SortIncludes: true -```cmake +``` ### 格式化规则摘要 @@ -174,7 +174,7 @@ clang-format -i path/to/file.cpp # 格式化整个项目 find . -name "*.cpp" -o -name "*.h" | xargs clang-format -i -```cpp +``` **VSCode 快捷键:** @@ -188,7 +188,7 @@ find . -name "*.cpp" -o -name "*.h" | xargs clang-format -i ```bash # 检查格式是否正确(不修改文件) clang-format --dry-run --Werror path/to/file.cpp -```yaml +``` --- @@ -224,7 +224,7 @@ clang-format --dry-run --Werror path/to/file.cpp } ] } -```cpp +``` ### 断点设置 @@ -266,7 +266,7 @@ cmake --build out/build_develop # 使用 gdb 调试 gdb out/build_develop/bin/your_app -```yaml +``` --- diff --git a/document/development/05_docker_build.md b/document/development/05_docker_build.md index 276d3989a..0b935fc2c 100644 --- a/document/development/05_docker_build.md +++ b/document/development/05_docker_build.md @@ -73,7 +73,7 @@ bash scripts/build_helpers/docker_start.sh # 指定架构 bash scripts/build_helpers/docker_start.sh --arch arm64 -```text +``` #### CI 验证模式 @@ -83,7 +83,7 @@ bash scripts/build_helpers/docker_start.sh --verify # 失败时保持容器开启(用于调试) bash scripts/build_helpers/docker_start.sh --verify --stay-on-error -```text +``` #### 完整构建 @@ -93,7 +93,7 @@ bash scripts/build_helpers/docker_start.sh --build-project # 指定架构 bash scripts/build_helpers/docker_start.sh --build-project --arch arm64 -```text +``` #### 快速构建 @@ -103,7 +103,7 @@ bash scripts/build_helpers/docker_start.sh --build-project-fast # 快速构建 ARM64 bash scripts/build_helpers/docker_start.sh --build-project-fast --arch arm64 -```text +``` #### 运行测试 @@ -113,14 +113,14 @@ bash scripts/build_helpers/docker_start.sh --run-project-test # 指定架构 bash scripts/build_helpers/docker_start.sh --run-project-test --arch arm64 -```text +``` #### 快速模式 ```bash # 复用现有镜像(跳过镜像重建) bash scripts/build_helpers/docker_start.sh --fast-build -```text +``` #### 组合选项 @@ -130,7 +130,7 @@ bash scripts/build_helpers/docker_start.sh --verify --stay-on-error --no-log # 快速构建 + ARM64 bash scripts/build_helpers/docker_start.sh --build-project-fast --arch arm64 --fast-build -```bash +``` --- @@ -149,7 +149,7 @@ bash scripts/build_helpers/docker_start.sh --build-project-fast --arch arm64 --f ```bash # 默认架构,无需指定 bash scripts/build_helpers/docker_start.sh --verify -```text +``` ### ARM64 构建 @@ -159,7 +159,7 @@ bash scripts/build_helpers/docker_start.sh --arch arm64 --verify # 完整构建 bash scripts/build_helpers/docker_start.sh --arch arm64 --build-project -```text +``` **ARM64 应用场景:** - Rockchip RK3568 (四核 ARM Cortex-A55) @@ -170,7 +170,7 @@ bash scripts/build_helpers/docker_start.sh --arch arm64 --build-project ```bash # ARM32 交叉编译(在 amd64 容器中) bash scripts/build_helpers/docker_start.sh --arch armhf --verify -```text +``` **ARMHF 应用场景:** - NXP i.MX 6ULL (ARM Cortex-A7) @@ -186,7 +186,7 @@ docker run --rm --platform linux/arm64 ubuntu:24.04 uname -m # 如果失败,安装 binfmt 支持 docker run --privileged --rm tonistiigi/binfmt --install all -```yaml +``` --- @@ -206,7 +206,7 @@ build_dir=out/build_ci [options] jobs=16 -```text +``` ### build_ci_aarch64_config.ini (ARM64) @@ -222,7 +222,7 @@ build_dir=out/build_ci_aarch64 [options] jobs=16 -```text +``` ### build_ci_armhf_config.ini (ARMHF) @@ -238,7 +238,7 @@ build_dir=out/build_ci_armhf [options] jobs=16 -```bash +``` ### 配置文件说明 @@ -262,7 +262,7 @@ jobs=16 ```bash # 日志文件命名格式 ci_build_YYYYMMDD_HHMMSS.log -```text +``` ### 日志内容 @@ -278,7 +278,7 @@ Platform: linux/amd64 Fast Build: false Verify Mode: true ============================================================================== -```text +``` ### --stay-on-error 调试 @@ -286,7 +286,7 @@ Verify Mode: true ```bash bash scripts/build_helpers/docker_start.sh --verify --stay-on-error -```text +``` **效果:** - 构建失败后不会退出容器 @@ -299,14 +299,14 @@ bash scripts/build_helpers/docker_start.sh --verify --stay-on-error cd /project ls -la out/build_ci/ cat build.log -```text +``` ### 禁用日志 ```bash # 不生成日志文件(输出到终端) bash scripts/build_helpers/docker_start.sh --verify --no-log -```yaml +``` --- @@ -354,7 +354,7 @@ cmake --build out/build_ci # 运行程序 ./out/build_ci/bin/your_app -```text +``` ### Q: 如何修改 Qt 版本? @@ -362,7 +362,7 @@ cmake --build out/build_ci ```dockerfile ARG QT_VERSION=6.8.1 # 修改为需要的版本 -```text +``` 然后重新构建镜像。 @@ -376,7 +376,7 @@ docker run --rm ubuntu:24.04 ping -c 3 8.8.8.8 # 检查 DNS docker run --rm ubuntu:24.4 cat /etc/resolv.conf -```yaml +``` --- diff --git a/document/development/06_git_hooks.md b/document/development/06_git_hooks.md index 699592f6d..3c276b4a4 100644 --- a/document/development/06_git_hooks.md +++ b/document/development/06_git_hooks.md @@ -58,7 +58,7 @@ bash scripts/develop/remove_trailing_space.sh --staged # Windows (PowerShell) pwsh scripts/develop/remove_trailing_space.ps1 -Staged -```text +``` ### 绕过 Pre-Commit 检查 @@ -66,7 +66,7 @@ pwsh scripts/develop/remove_trailing_space.ps1 -Staged ```bash git commit --no-verify -m "紧急修复" -```text +``` ### 检查模式 @@ -84,7 +84,7 @@ bash scripts/develop/remove_trailing_space.sh --staged # 预览将要修改的内容 bash scripts/develop/remove_trailing_space.sh --dry-run -```cpp +``` ## Pre-Push Hook @@ -121,7 +121,7 @@ Pre-push Hook 在推送前执行 Docker 构建验证,确保代码可以成功 ```cmake project(CFDesktop VERSION X.Y.Z LANGUAGES CXX) -```text +``` 如果版本号未变更,推送将被阻止,提示信息如下: @@ -144,7 +144,7 @@ project(CFDesktop VERSION X.Y.Z LANGUAGES CXX) - Patch: 0.13.1 -> 0.13.2 (bug 修复、小改动) - Minor: 0.13.1 -> 0.14.0 (新功能) - Major: 0.13.1 -> 1.0.0 (破坏性变更) -```text +``` ### 首次推送 @@ -156,7 +156,7 @@ project(CFDesktop VERSION X.Y.Z LANGUAGES CXX) ```bash git push --no-verify -```bash +``` ### Docker 环境要求 @@ -199,7 +199,7 @@ PATCH=$(get_patch_version "$VERSION") # 输出: 3 # 确定验证级别 LEVEL=$(determine_verify_level "1.2.3" "1.1.0") # 输出: minor -```text +``` ## 安装与卸载 @@ -209,7 +209,7 @@ LEVEL=$(determine_verify_level "1.2.3" "1.1.0") # 输出: minor ```bash bash scripts/release/hooks/install_hooks.sh -```text +``` 安装过程: @@ -225,7 +225,7 @@ bash scripts/release/hooks/install_hooks.sh ```bash ls -la .git/hooks/pre-commit .git/hooks/pre-push -```text +``` ### 卸载 Hooks @@ -233,7 +233,7 @@ ls -la .git/hooks/pre-commit .git/hooks/pre-push ```bash rm .git/hooks/pre-commit .git/hooks/pre-push -```text +``` ### 备份机制 @@ -256,7 +256,7 @@ bash scripts/develop/remove_trailing_space.sh --staged # 或强制提交(不推荐) git commit --no-verify -m "message" -```text +``` ### Pre-Push 验证失败 @@ -284,7 +284,7 @@ vim CMakeLists.txt # 修改 VERSION x.y.z git add CMakeLists.txt git commit -m "chore: bump version to x.y.z" git push -```text +``` ### Docker 未运行 @@ -298,7 +298,7 @@ git push ```bash # Linux sudo systemctl start docker -```text +``` ### clang-format 未安装 @@ -315,7 +315,7 @@ brew install clang-format # Windows (使用 Chocolatey) choco install clang-format -```text +``` ### ARM64 构建很慢 diff --git a/document/development/07_troubleshooting.md b/document/development/07_troubleshooting.md index 009ee6185..3464a53f7 100644 --- a/document/development/07_troubleshooting.md +++ b/document/development/07_troubleshooting.md @@ -23,7 +23,7 @@ description: 本文档提供 CFDesktop 项目开发和构建过程中常见问 ```text error: Docker daemon is not running! -```text +``` **解决方案**: @@ -34,14 +34,14 @@ sudo systemctl status docker # macOS/Windows # 启动 Docker Desktop 应用程序 -```text +``` **验证 Docker 运行状态**: ```bash docker info docker run --rm hello-world -```yaml +``` --- @@ -65,7 +65,7 @@ docker run --rm hello-world # 重启 Docker sudo systemctl restart docker -```text +``` #### 2. 基础镜像拉取失败 @@ -75,7 +75,7 @@ docker pull ubuntu:24.04 # 或使用镜像加速 docker pull registry.cn-hangzhou.aliyuncs.com/library/ubuntu:24.04 -```text +``` #### 3. 磁盘空间不足 @@ -85,14 +85,14 @@ docker system prune -a # 查看 Docker 占用空间 docker system df -```text +``` #### 4. 构建缓存问题 ```bash # 使用 --no-cache 重新构建 docker build --no-cache -f scripts/docker/Dockerfile.build -t cfdesktop-build . -```yaml +``` --- @@ -112,7 +112,7 @@ sudo systemctl restart docker # 使用 host 网络模式(Linux) docker run --rm --network host -v $(pwd):/project cfdesktop-build -```yaml +``` --- @@ -129,14 +129,14 @@ docker run --rm --network host -v $(pwd):/project cfdesktop-build ```bash # 缓存镜像,避免重复构建 bash scripts/build_helpers/docker_start.sh --fast-build --verify -```text +``` 2. **跳过 ARM64 验证**(如果不是必需): ```bash # 修改 pre-push hook 或使用 --no-verify git push --no-verify -```yaml +``` 3. **在原生 ARM64 环境构建**: @@ -161,7 +161,7 @@ bash scripts/build_helpers/docker_start.sh # PowerShell 需要手动转换 $env:MSYS_NO_PATHCONV=1 docker run --rm -v "D:/ProjectHome/CFDesktop:/project" cfdesktop-build -```yaml +``` --- @@ -177,7 +177,7 @@ docker run --rm -u $(id -u):$(id -g) -v $(pwd):/project cfdesktop-build # 或修改文件权限 sudo chown -R $USER:$USER out/ -```text +``` ## 构建问题 @@ -191,7 +191,7 @@ sudo chown -R $USER:$USER out/ ```text fatal error: some_header.h: No such file or directory -```text +``` **解决方案**: @@ -204,13 +204,13 @@ docker run --rm -v $(pwd):/project cfdesktop-build bash -c " apt-get update && \ bash /project/scripts/dependency/install_build_dependencies.sh " -```text +``` #### 2. Qt 版本不匹配 ```text error: 'Qt6::xxx' not found -```text +``` **解决方案**: @@ -221,13 +221,13 @@ qmlplugindump --version # CMakeLists.txt 中指定正确版本 find_package(Qt6 6.8.1 REQUIRED COMPONENTS Core Gui Widgets) -```text +``` #### 3. C++ 标准问题 ```text error: 'xxx' is not a member of 'std' -```text +``` **解决方案**: @@ -235,7 +235,7 @@ error: 'xxx' is not a member of 'std' # CMakeLists.txt set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -```yaml +``` --- @@ -249,7 +249,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) ```text undefined reference to 'xxx' -```text +``` **解决方案**: @@ -261,13 +261,13 @@ target_link_libraries(your_target Qt6::Widgets # 添加缺失的库 ) -```text +``` #### 2. 库文件未找到 ```bash cannot find -lxxx -```text +``` **解决方案**: @@ -277,7 +277,7 @@ ldconfig -p | grep xxx # 添加库路径 link_directories(/path/to/lib) -```yaml +``` --- @@ -291,20 +291,20 @@ link_directories(/path/to/lib) ```text CMAKE_BUILD_TYPE is not set -```text +``` **解决方案**: ```bash # 使用正确的配置脚本 bash scripts/build_helpers/linux_develop_build.sh -c build_develop_config.ini -```text +``` #### 2. 工具链问题 ```text CMAKE_CXX_COMPILER not set -```text +``` **解决方案**: @@ -314,7 +314,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake -S . -B out/build # 或使用预设工具链 cmake -DUSE_TOOLCHAIN=linux/llvm -S . -B out/build -```yaml +``` --- @@ -324,7 +324,7 @@ cmake -DUSE_TOOLCHAIN=linux/llvm -S . -B out/build ```bash Could not find Qt6 -```text +``` **解决方案**: @@ -332,13 +332,13 @@ Could not find Qt6 # 设置 Qt 路径 export Qt6_DIR=/path/to/Qt/6.8.1/gcc_64/lib/cmake/Qt6 cmake -DQt6_DIR=/path/to/Qt/6.8.1/gcc_64/lib/cmake/Qt6 -S . -B out/build -```text +``` #### Qt 模块缺失 ```text Qt6 component 'Widgets' not found -```text +``` **解决方案**: @@ -347,7 +347,7 @@ Qt6 component 'Widgets' not found docker run --rm -v $(pwd):/project cfdesktop-build bash -c " python3 -m aqt install-qt --outputdir /opt linux desktop 6.8.1 gcc_64 -m qtbase qttools " -```yaml +``` --- @@ -366,7 +366,7 @@ ctest -R test_name --verbose # 输出到文件 ctest --output-on-failure > test_results.txt -```text +``` ## Git Hooks 问题 @@ -378,7 +378,7 @@ ctest --output-on-failure > test_results.txt ```text error: 空白字符检查失败 -```text +``` **解决方案**: @@ -388,13 +388,13 @@ bash scripts/develop/remove_trailing_space.sh --staged # 或强制提交(不推荐) git commit --no-verify -m "message" -```text +``` #### 2. clang-format 失败 ```text error: clang-format failed -```text +``` **解决方案**: @@ -403,7 +403,7 @@ error: clang-format failed sudo apt install clang-format # 或跳过格式化(删除 Hook 中的格式化部分) -```yaml +``` --- @@ -415,7 +415,7 @@ sudo apt install clang-format ```text error: 版本号未变更,推送被阻止 -```text +``` **解决方案**: @@ -429,13 +429,13 @@ git commit -m "chore: bump version to x.y.z" # 重新推送 git push -```text +``` #### 2. Docker 构建失败 ```text error: Docker 构建验证失败 -```text +``` **解决方案**: @@ -448,7 +448,7 @@ bash scripts/build_helpers/docker_start.sh --verify # 或强制推送(不推荐) git push --no-verify -```yaml +``` --- @@ -467,7 +467,7 @@ bash scripts/release/hooks/install_hooks.sh # 检查执行权限 chmod +x .git/hooks/pre-commit .git/hooks/pre-push -```yaml +``` --- @@ -482,7 +482,7 @@ chmod +x .git/hooks/pre-commit .git/hooks/pre-push export MSYS_NO_PATHCONV=1 # 或修改 Hook 脚本,使用项目根目录的绝对路径 -```text +``` ## 性能优化 @@ -494,7 +494,7 @@ bash scripts/build_helpers/docker_start.sh --fast-build # 结合验证使用 bash scripts/build_helpers/docker_start.sh --fast-build --verify -```yaml +``` --- @@ -507,7 +507,7 @@ docker run --rm -v $(pwd):/project -v ~/.ccache:/root/.ccache cfdesktop-build # 或使用环境变量 export CCACHE_DIR=~/.ccache export CCACHE_MAXSIZE=10G -```yaml +``` --- @@ -519,7 +519,7 @@ cmake -S . -B out/build -DCMAKE_BUILD_PARALLEL_LEVEL=4 # 或使用 make make -j4 -```yaml +``` --- @@ -534,7 +534,7 @@ export Qt6_DIR=/path/to/Qt/6.8.1/gcc_64/lib/cmake/Qt6 # 配置和构建 cmake -S . -B out/build -DCMAKE_BUILD_TYPE=Debug cmake --build out/build --parallel -```yaml +``` --- @@ -546,7 +546,7 @@ bash scripts/build_helpers/linux_fast_develop_build.sh -c build_develop_config.i # 只构建变更的目标 cmake --build out/build --target -```text +``` ## 获取更多帮助 @@ -559,7 +559,7 @@ ls scripts/docker/logger/ci_build_*.log # CMake 配置日志 cat out/build/CMakeFiles/CMakeOutput.log cat out/build/CMakeFiles/CMakeError.log -```yaml +``` --- @@ -575,7 +575,7 @@ cmake -S . -B out/build --trace-expand # Make 详细输出 make VERBOSE=1 -```yaml +``` --- @@ -599,7 +599,7 @@ make VERBOSE=1 提交问题时,请包含以下信息: -```markdown +````markdown ## 环境信息 - 操作系统: [Ubuntu 24.04 / Windows 11 / macOS 14] - Docker 版本: [Docker version 24.0.7] @@ -616,8 +616,8 @@ make VERBOSE=1 ## 错误信息 ```text [粘贴错误输出] -```text +``` ## 已尝试的解决方案 [列出已尝试的方法] -```text +```` diff --git a/document/status/current.md b/document/status/current.md index 7425744af..a5508c744 100644 --- a/document/status/current.md +++ b/document/status/current.md @@ -1,12 +1,13 @@ +--- +title: CFDesktop 当前项目状态 +description: CFDesktop 项目进度的唯一事实来源与全局导航。 +--- + ---- -title: CFDesktop 当前项目状态 -description: CFDesktop 项目进度的唯一事实来源与全局导航。 ---- # CFDesktop 当前项目状态