保姆级教程:在Windows 10上搞定QGroundControl 4.2源码编译与打包(附VS+QT配置)
Windows 10下QGroundControl 4.2开发环境全栈搭建指南第一次接触无人机地面站开发时我被QGroundControl强大的功能所吸引但配置开发环境的过程却让我踩了不少坑。从VS安装版本选择到QT组件配置再到最后的打包发布每个环节都可能遇到意想不到的问题。本文将带你完整走通整个流程并分享那些官方文档没写的实战经验。1. 开发环境准备避开版本兼容性陷阱1.1 Visual Studio选型与配置很多人不知道的是VS2019虽然是最新版本但某些QT插件对其支持并不完美。经过多次测试验证VS2017 Community版才是当前最稳定的选择。安装时务必勾选使用C的桌面开发Windows 10 SDK (10.0.17763.0)C CMake工具注意安装路径不要包含中文或空格这是后续90%编译错误的根源1.2 QT 5.15.2定制化安装QT在线安装器默认会下载大量无用组件推荐使用以下精简配置qt-opensource-windows-x86-5.15.2.exe --script qt-installer-noninteractive.qs其中qt-installer-noninteractive.qs内容应包含function Controller() { installer.autoRejectMessageBoxes(); installer.setMessageBoxAutomaticAnswer(OverwriteTargetDirectory, QMessageBox.Yes); installer.setMessageBoxAutomaticAnswer(stopProcesses, QMessageBox.Yes); var components [ qt.qt5.5152.win32_msvc2017, qt.qt5.5152.qtcharts, qt.qt5.5152.qtlocation, qt.qt5.5152.qtquickcontrols2, qt.tools.qtcreator ]; installer.setComponentsToInstall(components); }2. 源码获取与环境变量配置2.1 Git仓库克隆的加速技巧国内开发者常遇到克隆速度慢的问题推荐使用镜像仓库深度克隆git clone --depth1 https://gitee.com/mirrors/qgroundcontrol.git cd qgroundcontrol git fetch --unshallow2.2 环境变量设置的隐藏要点除了常规的QT_DIR、PATH设置外这些变量常被忽略但至关重要变量名推荐值作用QTDIRC:\Qt\5.15.2\msvc2017_64指定QT主目录QMAKESPECwin32-msvc指定编译器类型QT_PLUGIN_PATH%QTDIR%\plugins插件路径提示设置完成后务必重启CMD/PowerShell使配置生效3. 编译过程中的疑难杂症解决3.1 中文路径导致的诡异错误当遇到Could not find qmake等提示时按以下步骤排查打开qmake.exe所在目录通常为Qt\5.15.2\msvc2017_64\bin右键属性→兼容性→勾选以管理员身份运行此程序在系统环境变量Path中上移QT路径到最前面3.2 第三方库下载失败处理编译时可能卡在下载Eigen等库手动解决方案# 1. 下载预编译包 Invoke-WebRequest -Uri https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip -OutFile $env:TEMP\eigen.zip # 2. 解压到指定目录 Expand-Archive -Path $env:TEMP\eigen.zip -DestinationPath .\libs\eigen34. 打包发布与数字签名4.1 NSIS打包配置优化修改deploy/windows/QGroundControl.nsi文件关键参数; 压缩级别调整平衡体积与速度 SetCompressor /SOLID lzma SetCompressorDictSize 32 ; 添加版本信息 VIProductVersion 4.2.0.0 VIAddVersionKey /LANG2052 ProductName QGroundControl VIAddVersionKey /LANG2052 LegalCopyright (C) 2023 QGC Community4.2 代码签名证书应用使用以下命令对exe进行数字签名$cert Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert Set-AuthenticodeSignature -FilePath .\release\QGroundControl.exe -Certificate $cert -TimestampServer http://timestamp.digicert.com在实际项目中我发现使用EV代码签名证书可以显著减少Windows Defender的误报。打包完成后建议在虚拟机中测试安装流程确保所有依赖项都被正确包含。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2609293.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!