Windows下QGroundControl开发问题汇总

本文汇总了Windows下QGroundControl二次开发的问题。包括QGC源码版本选择与下载,建议选有明确软件要求的版本,介绍了两种下载方法;还提及Qt5.7.1和VS2015的下载使用,以及开发中如Qt假死、运行提示错误等小问题的解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows下QGroundControl二次开发问题汇总

前段时间因为项目要求涉及了一下QGC地面站的二次开发,开发难度先不提,环境搭建遇到了很多问题,几乎网上能搜到的问题都遇到了一遍,在这里总结一下。

一、QGC源码版本选择与下载

首先进入QGC官网链接,点击右上角download选择source code进入到GitHub网页,此时Branch的默认版本是master,这个并不是我需要的版本,因为master的README里面并没有写具体的软件要求。点击master切换成3.2版本,网页向下查看README,可以发现3.2版本的README里面比起master 的要求具体了很多。当然3.2版本是我自己的选择,选其他版本也是可以的,但还是建议选择有明确软件版本要求的。

这里写图片描述
这里写图片描述

阅读README可以发现,QGC3.2版本的编译需要安装Qt和VS2015,版本要求分别是Desktop Qt 5.7.1 MSVC2015 32bit和VS 2015 32 bit。
接下来就是QGC源码的下载了。也许这对一部分人来说不是问题,但是对我这个小白来说卡在下载这部分卡了半天。下面总结了一下下载历程:

  • 方法一: 下载并安装GitHub客户端,在网页上点击clone or download,选择在desktop打开,clone之后下载代码就是完整的代码了。缺点是客户端下载速度太慢了,而且似乎不支持断点续传,总是下到一半就失败然后无法下载。能够魔法上网的同学可以试试这种办法。
    这里写图片描述

  • 方法二: 没有魔法上网渠道,就只能另寻他路了。在国内网站码云上,我找到了QGC的源码下载,奔跑的乌龟,选择3.2版本。点击download就可以下载。一个问题是这样下载下来的zip是不完整的,会缺少一些驱动,比如mavlink和gps驱动,解压后点进这两个文件夹是空的。这种情况也在README文件开头提到,不使用git下载下来的代码就是不完整的。由于不能魔法上网,补救方法就是单独下载这两个文件夹,再解压进对应的位置。mavlink包含v1.0和v2.0,建议两者都下载下来。目前我在使用过程中补上这mavlink和GPS驱动就能编译QGC了,如果发现还有遗落的文件可以自己补下。
    mavlink的路径是…\qgroundcontrol\libs\mavlink\include\mavlink
    gps驱动的路径是…\qgroundcontrol\src\GPS\Drivers

到这里QGroundControl的源码就完完整整地下载完成了。

二、Qt5.7.1和VS2015的下载和使用

在第一部分中,我们已经知道要下载5.7.1 MSVC2015版本的Qt和2015 X86版本的VS。QGC对软件版本的要求非常严格,我尝试了Qt和VS的更高版本,比如Qt5.9.4和VS2017,都是不能编译成功的,还是老老实实地根据README里面的要求来。
Qt的下载可以在官网下,下载地址,选择下图红框内的版本就行了。
这里写图片描述

Visual Studio目前最新的版本是2017了,巨硬把2015版本下载藏了起来,如果要从官网下载还得费一点工夫。

  • 进入VS官网,点击网页最上端的下载,进入2017的下载页面。
    这里写图片描述

  • 进入2017版的下载页面后网页向下划动,能够找到旧版本的下载入口。
    这里写图片描述

  • 点击VS2015,展开下载页面点击下载就可以进入下载页面了,期间可能会要求你登陆MSDN之类的,登陆一下就好。下载VS2015第一个X86版本就行,可以把语言换成简体中文。
    这里写图片描述

这里Qt和VS的下载就完成了,有点啰嗦,也是为了尽量详细,跟着文章能够一次完成。
除了Qt和VS的安装,还需要安装调试器windbg,才能完成环境搭建。这篇文章讲的非常详细,一步步来就行。Qt5.7 + VS2015 环境搭建。如果准备在Qt creator中写程序,VS安装完就好,不需要进行文章中的额外配置了。

三、开发过程中的几个小问题

打开qgroundcontrol文件夹,点击qgroundcontrol.pro文件,点击左下角绿色小按钮就可以…运行失败(汗)。开发过程中还是遇到了很多小问题,感觉别人遇到的遇不到的我全碰上了。

  • 问题1: Qt打开后假死/卡顿/鼠标点击没有反应。
    这个问题是显卡问题,运行QtCreator的时候不支持某些显卡或者不支持高性能图形处理器,需要降低显卡性能。这是解决方法,感谢这位大佬。
    https://blog.youkuaiyun.com/Hxj_优快云/article/details/80630420
    NVDIA控制面板——>管理3D设置——>首选图行处理器——>改为自动选择
  • 问题2: 运行提示’rc’不是内部或外部命令/Qt: error lnk1158 无法运行rc.exe/jom退出
    原因是缺少rc.exe和rc.dll,或者没有添加路径,这是解决方法,感谢这位大佬。
    https://blog.youkuaiyun.com/jacke121/article/details/78359820

四、总结

其实该说的都已经说完了,整个环境搭建到能成功编译花了大概两天时间吧,要不是项目要求,这么多问题我早就放弃了。总结下来就是问题出现时,要逐步排查,比如QGC编译过程中退出,报错报的很复杂,我重新写了一个helloworld再编译,错误很快就定位在’rc’缺失上了,补上之后就可以成功运行QGC了。还有面对一个project,要先阅读README,能提前避免很多问题,不要看到英文就畏缩不前。

<think>好的,我现在需要解决用户在Qt 5.15.2 MSVC2019 32位环境下使用jom编译时出现的错误:“unresolved external symbol”和“Error 2”。首先,我需要理解这个错误的具体原因。 用户提供的错误信息是“8YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yar...”以及“Error 2”。unresolved external symbol错误通常是由于链接器找不到某个函数或变量的定义导致的。可能的原因包括缺少库文件、项目配置错误,或者代码中声明了但没有实现的函数。 接下来,我需要考虑Qt项目中使用MSVC编译器时的常见问题。用户使用的是Qt 5.15.2和MSVC2019 32位版本,这可能涉及到编译器与Qt库的兼容性。此外,错误提到了JSC::Yar,这可能与JavaScriptCore(JSC)相关,而Qt在Web模块中可能会用到这个库。 可能的解决步骤包括: 1. 检查是否正确安装了Qt的MSVC2019 32位组件,确保没有遗漏任何模块,尤其是与WebEngine或JavaScriptCore相关的部分。 2. 确认项目配置中链接了必要的库文件,比如是否在.pro文件中添加了对应的库依赖,例如`LIBS += -lJavaScriptCore`或者类似的语句。 3. 清理并重新构建项目,有时候旧的编译文件可能导致链接错误。 4. 检查代码中是否有未实现的函数声明,特别是与JSC::Yar相关的部分,确保所有用到的函数都有对应的实现。 5. 确保使用的Qt版本与MSVC2019 32位编译器完全兼容,可能需要重新安装或修复Qt安装。 6. 查看编译输出的详细日志,寻找其他可能的错误或警告,这些信息可能有助于更准确地定位问题。 另外,Error 2通常表示编译过程中的致命错误,可能是由于前面的错误积累导致编译终止。解决前面的链接错误后,Error 2可能会消失。 如果上述步骤无法解决问题,可能需要进一步检查系统环境变量,确保MSVC的路径正确配置,或者尝试使用不同的构建工具,比如nmake代替jom,以排除工具本身的问题。 最后,建议用户参考Qt官方文档或社区论坛,查找类似问题的解决方案,或者在项目中启用调试符号以获取更详细的错误信息。</think>要解决Qt 5.15.2 MSVC2019 32bit项目编译时出现的`LNK2019`未解析符号错误和`Error 2`,请按以下步骤排查: ### 步骤1:检查库依赖 1. **确认Qt组件完整性** 确保安装Qt时勾选了`MSVC2019 32-bit`组件和`Qt WebEngine`模块(若项目涉及Web功能)。可通过Qt Maintenance Tool重新添加缺失模块[^1]。 2. **检查.pro文件配置** 在项目.pro文件中添加WebEngine库依赖: ```qmake QT += webenginewidgets LIBS += -lJavaScriptCore ``` ### 步骤2:清理构建环境 ```bash # 删除构建目录 rmdir /s/q build # 重新生成Makefile qmake -spec win32-msvc2019 # 使用jom重新编译 jom clean && jom ``` ### 步骤3:验证编译器兼容性 1. 在Qt Creator中检查工具链配置: - **MSVC2019 32bit编译器路径**应指向`VC\Tools\MSVC\14.29.30133\bin\Hostx86\x86` - **Windows SDK版本**需与Qt 5.15.2兼容(建议10.0.19041.0) ### 步骤4:检查符号定义 在代码中查找`JSC::Yar`相关声明: ```cpp // 示例:检查头文件中是否缺少实现 class JSC_EXPORT Yar { // 需要对应的.cpp文件实现 public: void criticalFunction(); // 声明但未实现会导致LNK2019 }; ``` ### 替代方案 若问题持续,尝试: 1. 使用`nmake`代替jom: ```bash nmake clean nmake ``` 2. 更新Qt至5.15.2的最新补丁版本(LTS版) ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值