You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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安装)
  • 操作流程:
    1. 安装VS2022及C++组件
    2. 安装Qt 6.8.3 MSVC2022 64-bit
    3. 克隆含子模块的仓库并切换到v5.0.8标签
    4. 执行git submodule update --init --recursive
    5. Qt Creator打开CMakeLists.txt并配置MSVC2022 64-bit工具链
    6. 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构建目录下所有文件(默认buildbuild-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

火山引擎 最新活动