Mission Planner编译方法与问题解决

最近两天尝试编译Mission Planner,结果遇到了和官方教程不一样的地方,参考了几篇博客,内容都比较久远了还大多雷同,经过摸索,浪费了将近两天的时间,总算编译通过了。

原官方教程链接为:http://ardupilot.org/dev/docs/buildin-mission-planner.html
Mission Planner源码地址为:https://github.com/ArduPilot/MissionPlanner
最新版Mission Planner上位机软件下载链接为:http://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.msi

1、安装visual studio 2017(官方教程要求15.3以上,我编译时的环境为15.6.5),具体操作可以参考原官方教程(其实vs2107打开工程的时候会自动扫描,如果缺少组件再自动安装也可以)

2、下载Mission Planner源码到本地
3、下载最新版的Mission Planner上位机并安装(注意此版本不要与源代码版本差别过大,源代码1.50之前使用的是vs2013编译,只用到了.NET4.0,源代码1.50及以后的版本同时用到了.NET4.0(及以上)和.NETStandard2.0(这也是坑人之处))

4、找到源代码文件夹,使用vs2017打开MissionPlanner.sln(如图)
等工程加载完毕,在解决方案视图中会有很多项目,有些项目的依赖性会有黄色三角,如下图所示

初次加载大部分项目都会有这个,但是其实只有一个名为MissionPlanner.Utilities的项目会在编译时报错,其他的都只会产生warning,并不影响运行,可以先不管。

5、重点找到 MissionPlanner.Utilities项目,可以先编译一遍,会发现在.NETStandard2.0框架下无法加载System.Speech,进而连续报错,导致编译失败
解决办法是:先找到该项目依赖项中的System.Speech,右键将其移除(不移除后续无法添加同名dll)

然后右键依赖项,选择添加引用,选择浏览,找到用户文件夹下的.negut\packages\system.speech.dll\1.xx\lib\dnxcore50\lib\System.Speech.dll,选择添加
然后找到安装的Mission Planner上位机路径下的System.Speech.dll,同样添加进来。

按添加顺序同时勾选上点确定
(注意顺序!!!).negut文件夹下对应的是.NET4.x的dll,上位机软件下的.dll包含.NETStandard2.0,由于vs2017默认先添加到.NET4.x,所以顺序错了依然会编译出错(我实验的情况就是如此,感觉很奇葩。。。)

然后再次编译 MissionPlanner.Utilities项目发现就可以通过了,再去编译MissionPlanner项目就可以顺利通过并允许。
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
MissionPlanner是一款用于无人机的地面站软件,可以帮助用户进行飞行计划、飞行控制和数据处理等操作。编译MissionPlanner可以使其在计算机上正常运行。 首先,编译MissionPlanner需要电脑上安装Visual Studio 2017或更新的版本,这是一款强大的集成开发环境。安装Visual Studio的过程比较简单,只需要按照提示一步步操作即可。 接下来,我们需要从MissionPlanner的官方网站上下载源代码文件,源代码存储在GitHub上,我们可以在其页面上找到源代码的地址。下载完成后,将源代码解压到本地的一个目录中。 然后,打开Visual Studio,选择“文件”菜单,点击“打开”选项,在弹出的对话框中选择刚刚解压的源代码文件夹,并点击“打开”按钮。 接着,在Visual Studio的界面中找到“生成”选项,在下拉菜单中选择“重新生成解决方案”,这将编译MissionPlanner的所有源代码文件。编译过程可能会需要一些时间,取决于电脑的配置和源代码的复杂性。 等待编译完成后,在Visual Studio的菜单栏上选择“开始”选项,点击“开始调试”或按下F5键,MissionPlanner将在计算机上运行起来。 编译MissionPlanner成功后,我们就可以根据自己的需求进行相应的配置和使用了。可以进行地图浏览,飞行计划的创建,飞行参数的修改等操作,更好地控制无人机的飞行。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值