参考考qgroundcontrol官方文档,做一些准备工作:
https://dev.qgroundcontrol.com/master/en/getting_started/index.html
1. 按官方文档下载qgroundcontrol的源码:
git clone --recursive -j8 https://github.com/mavlink/qgroundcontrol.git
git submodule init
git submodule update --recursive (这一步必须执行)
2. 安装Qt5.15.2和Visual studio2019 64位
3. 启动QtCreator并打开qgroundcontrol.pro这个文件,选择msvc2019 64位。
4. 开始编译,编译过程中一定会出错,所以才有了这篇文章的出现。
4.1 出错1:error: Project ERROR: MAVLink folder does not exist at 'libs/mavlink/include/mavlink/v2.0'! Run 'git submodule init && git submodule update' on the command line.
把上边的git submodule update --recursive 在命令行中执行一下就好了。
4.2 出错2:error: dependent 'libs\xz-embedded\linux\lib\xz\xz_crc32.c' does not exist.
原因是执行git submodule update时没有下载xz-embedded的代码,需要手动下载,我是去gitee中下载的。下载完成后解压,将目录名改成xz-embedded,并拷到libs目录中,覆盖掉之前的。
接着编译,编译前需要把前一次的编译结果清除掉。
4.3 出错3: libs\libevents\libevents\libs\cpp\parse\parser.h(13): fatal error C1083: 无法打开包括文件: “nlohmann_json/include/nlohmann/json_fwd.hpp”: No such file or directory
出现这个错误也是一样,需要手动下载 nlohmann_json,也是在gitee上下载的。下载完成后把nlohmann_json放到libs\libevents\libevents\libs\cpp\parse\目录下,并在QGCExternalLibs.pri文件中指定:INCLUDEPATH += libs\libevents\libevents\libs\cpp\parse\nlohmann_json\include
5. 清除上次编译结果后,在次编译,就会顺利成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)