QGC v5.0.8在Windows10+Qt6.8.3+VS2022x64编译挂起求助
QGroundControl v5.0.8 Windows编译挂起问题排查与解决
环境与操作回顾
- 系统:Windows 10
- 目标版本:QGC v5.0.8标签
- 依赖:Qt 6.8.3 MSVC2022 64-bit、Visual Studio Community 2022(带桌面C++组件)、CMake+Ninja、GStreamer(通过
python tools/setup/install_dependencies.py --platform windows安装) - 操作流程:
- 安装VS2022及C++组件
- 安装Qt 6.8.3 MSVC2022 64-bit
- 克隆含子模块的仓库并切换到v5.0.8标签
- 执行
git submodule update --init --recursive - Qt Creator打开CMakeLists.txt并配置MSVC2022 64-bit工具链
- Debug模式编译,或在VS2022 x64开发者命令提示符执行
cmake --build . --target all -j1 -v,均出现编译挂起,进程CPU占用0%
排查与解决步骤
1. 重置并重新同步子模块
编译挂起常因子模块拉取不完整或损坏导致,执行以下命令强制同步:
git submodule deinit -f . git submodule update --init --recursive --force
同步完成后删除原有CMake构建目录,重新初始化编译配置。
2. 启用最高 verbosity 定位挂起点
即使指定单线程编译,仍需通过详细日志确认挂起时的编译目标:
cmake --build . --target all --parallel 1 --verbose
观察日志输出,定位到挂起时正在编译的文件,锁定出问题的模块。
3. 验证GStreamer依赖有效性
GStreamer安装或环境变量配置异常可能触发编译阻塞:
- 确认
GSTREAMER_1_0_ROOT_X86_64环境变量指向正确的GStreamer安装目录 - 进入
%GSTREAMER_1_0_ROOT_X86_64%\bin,运行gst-inspect-1.0.exe,若能正常输出库信息则依赖正常,否则重新执行安装脚本或手动下载对应版本GStreamer。
4. 切换至官方推荐Qt版本
QGC v5.0.8官方适配Qt 6.5.x版本,高版本Qt可能存在兼容性冲突:
- 卸载Qt 6.8.3,安装Qt 6.5.3 MSVC2022 64-bit
- 在Qt Creator中重新配置对应工具链,清除旧构建缓存后重新编译。
5. 清理编译缓存与系统临时文件
- 删除CMake构建目录下所有文件(默认
build或build-debug文件夹) - 清理系统临时文件:Win+R输入
%temp%,删除可清理的临时文件 - 重新初始化CMake配置:
再执行编译命令。cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
6. 检查VS2022组件完整性
打开Visual Studio Installer,选择"修改",确认已安装以下组件:
- MSVC v143 - VS 2022 C++ x64/x86生成工具
- Windows 10 SDK(推荐10.0.19041.0及以上版本)
- C++ CMake工具 for Windows
补充缺失组件后重启系统,重新尝试编译。
内容的提问来源于stack exchange,提问作者Nazarii Pushkaruk




