Linux版本:Ubuntu16.04
qgroundcontrol版本:4.0.8
QT版本:5.12.6
(1)将qgroundcontrol源码克隆到本地:
git clone https://github.com/mavlink/qgroundcontrol.git --recursive
这条指令往往下载非常慢,而且可能会报错(error: RPC failed)而下载中断,具体可参考github下载问题解决。这里采用的方法是将代码转移到gitee上进行下载,速度飞快,下载代码如下:
git clone https://gitee.com/zhtang/qgroundcontrol.git
(2)下载依赖项
cd qgroundcontrol/
进入到主目录下,按Ctrl+H,可以看到qgroundcontrol路径下有两个隐藏文件夹.git/和.github,紧接着执行下面这一步(很重要):
git submodule init && git submodule update
这一步是为了下载相关的依赖项,即:
Submodule 'libs/OpenSSL/android_openssl' (https://github.com/Auterion/android_openssl) registered for path 'libs/OpenSSL/android_openssl'
Submodule 'libs/mavlink/include/mavlink/v2.0' (https://github.com/mavlink/c_library_v2.git) registered for path 'libs/mavlink/include/mavlink/v2.0'
Submodule 'libs/qmlglsink/gst-plugins-good' (https://github.com/mavlink/gst-plugins-good.git) registered for path 'libs/qmlglsink/gst-plugins-good'
Submodule 'src/GPS/Drivers' (https://github.com/PX4/GpsDrivers.git) registered for path 'src/GPS/Drivers'
注意:如果这一步下载速度仍然很慢,那么可以在gitee上下载对应的依赖包,放到相应的位置即可。
(1)安装QT5.12.6,参参考博客安装QT5.12.6;
(2)打开Qtcreator,选择qgroundcontrol.pro文件来打开整个qgroundcontrol工程;
(3)选择Desktop Qt 5.12.6 GCC 64bit,并将第一个勾去掉,如下图所示:
(4)打开后整个工程如下:
(5)编译整个工程(点击左下角的小锤子即可);
(6)编译完成后,在/build-qgroundcontrol-Desktop_Qt_5_12_6_GCC_64bit-Debug/staging文件夹下会生成一个可执行文件QGroundControl,双击即可使用。
问题1::-1: 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 init && git submodule update导致的。
解决方案:在下载好qgroundcontrol包后在qgroundcontrol/路径下执行git submodule init && git submodule update这条指令即可。
问题2:Cannot read /home/zydz/software/QGC/qgroundcontrol/user_config.pri: No such file or directory
解决方案:在工程中右键选中qgroundcontrol[master],选择Clean,然后重新进行编译就没有这个问题了。
问题3:error: attributes at the beginning of statement are ignored [-Werror=attributes]
解决方案:这个问题是由于C++17的新特性,而这个工程不支持,粗暴的解决方案是直接屏蔽掉[[fallthrough]];这一句。一共需要屏蔽3处:QGCCameraIO.cc 第79行和179行以及APMFirmwarePlugin.cc第380行。
https://github.com/mavlink/QGroundControl/releases
https://dev.qgroundcontrol.com/en/getting_started/
https://blog.csdn.net/enjoyyl/article/details/83385666