欢迎交流~ 个人 Gitter 交流平台,点击直达:
更新于2017.5.7
对于QGC3.1.3以后的版本,其编译所需的Qt Creator已经全面升级为5.7.1。
QGC的官网是http://qgroundcontrol.com/,可以从这里下载比较稳定的安装包解压,建议下载daily build的,里面有一些新的功能后面要用到,但是还是得安装Qt,如果不安装Qt,打开QGC会有缺少动态链接库的问题。
如果想要对自己编译QGC或者进行二次开发,那就必须从Github上下载QGC源码并且安装特定版本的Qt Creator了。
对于2017年4月之后的QGC
其中Windows操作系统需要安装vs2015以及Qt5.7.1(MSVC2015 32bit);
Linux安装与操作系统对应的Qt5.7.1即可。
Windows下操作简单,安装软件即可,本文介绍的是Ubuntu下QGC的编译方法。
可以选择中国科学技术大学的镜像。
这样下载比较快一些,下载完成后进行如下操作。
~ $ chmod 777 qt-opensource-linux-x64-5.7.1.run
~ $ ./qt-opensource-linux-x64-5.7.1.run
# => 建议将目标文件夹选为$HOME/Qt($HOME为用户目录,替换为如/home/your_name)
# => 相关依赖项的安装如下:
~ $ sudo apt-get install espeak libespeak-dev libudev-dev libsdl1.2-dev libsdl2-dev
# => Qt配置如下:
# => 更换qt源,默认为qt4
~ $ export QT_SELECT=qt5
# => 查看Qt环境
~ $ qtchooser -print-env
QT_SELECT="qt5"
QTTOOLDIR="/home/your_name/Qt5.7.1/5.7/gcc_64/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"
# => 更改文件/usr/lib/x86_64-linux-gnu/qtchooser/5.conf 第一行为:/home/your_name/Qt/5.7/gcc_64/bin
~ $ sudo gedit /usr/lib/x86_64-linux-gnu/qtchooser/5.conf
# => 我的如下:
~ $ cat /usr/lib/x86_64-linux-gnu/qtchooser/5.conf
/home/fantasy/Qt5.7.1/5.7/gcc_64/bin
/usr/lib/x86_64-linux-gnu
~ $ qmake -v
QMake version 3.0
Using Qt version 5.7.1 in /home/fantasy/Qt5.7.1/5.7/gcc_64/lib
QGC的源码可以在这里找到。
git clone --recursive https://github.com/mavlink/qgroundcontrol.git
然后就可以用Qt打开.pro工程文件进行开发了,Qt使用了影子构建,用户可以自定义生成目录的路径。
QGC的编译只能使用Qt5.7.1,必须在工程设置中选择Qt 5.7.1的GCC
编译一次耗时挺久的,不知道有没有快一点的方法……
生成的可执行方式在影子目录中。
如上图所示,笔者在qgroundconctrol
源码目录的同级创建了构建目录QGC_Build
,编译好的QGC可执行文件就在该目录下的Debug
目录中
看到这里应该无须再多说了
新版地面站是这样的,软件更新速度很快,指不好还会怎么大改。
对于2017年4月之前的QGC
其中Windows操作系统需要安装vs2013以及Qt5.5.1(MSVC2013);Linux安装与操作系统对应的Qt5.5.1即可。
Windows下操作简单,安装软件即可,本文介绍的是Ubuntu下QGC的编译方法。
可以选择中国科学技术大学的镜像。
这样下载比较快一些,下载完成后进行如下操作。
~ $ chmod 777 qt-opensource-linux-x64-5.5.1.run
~ $ ./qt-opensource-linux-x64-5.5.1.run
# => 建议将目标文件夹选为$HOME/Qt($HOME为用户目录,替换为如/home/your_name)
# => 相关依赖项的安装如下:
~ $ sudo apt-get install espeak libespeak-dev libudev-dev libsdl1.2-dev libsdl2-dev
# => Qt配置如下:
# => 更换qt源,默认为qt4
~ $ export QT_SELECT=qt5
# => 查看Qt环境
~ $ qtchooser -print-env
QT_SELECT="qt5"
QTTOOLDIR="/home/your_name/Qt5.5.1/5.5/gcc_64/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"
# => 更改文件/usr/lib/x86_64-linux-gnu/qtchooser/5.conf 第一行为:/home/your_name/Qt/5.5/gcc_64/bin
~ $ sudo gedit /usr/lib/x86_64-linux-gnu/qtchooser/5.conf
# => 我的如下:
~ $ cat /usr/lib/x86_64-linux-gnu/qtchooser/5.conf
/home/fantasy/Qt5.5.1/5.5/gcc_64/bin
/usr/lib/x86_64-linux-gnu
~ $ qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /home/fantasy/Qt5.5.1/5.5/gcc_64/lib
QGC的源码可以在这里找到。
git clone https://github.com/mavlink/qgroundcontrol.git
这一步很重要
要编译以前的地面站,需要编译以前的固件。
以前的固件在执行git clone xxx
步骤时已经一并下下来了。
使用git tag
可以查看以前的qgc版本
$ git tag
v1.0.4
...
v2.4
v2.5
...
v3.1.2
v3.1.3
例如这里如果要编译3.1.2版本的地面站,可以使用以下指令切换到3.1.2版本的tag上
git checkout v3.1.2
然后在此tag上递归更新子模块
git submodule update --init --recursive
接下来就可以用Qt打开.pro工程文件进行开发了,Qt使用了影子构建,用户可以自定义生成目录的路径。
QGC的编译只能使用Qt5.5.1,必须在工程设置中选择Qt 5.5.1的GCC
编译一次耗时挺久的,不知道有没有快一点的方法……
生成的可执行方式在影子目录中。
编译成的地面站长这样
对于下载的Daily Build版QGC,有时直接./qgroundcontrol-start.sh
启动不了,报错
error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory
此时需要安装依赖项
sudo apt-get install espeak libespeak-dev libudev-dev libsdl2-dev
编译报错
ERROR: sdl2 development package not found
缺包就安
sudo apt-get install libsdl2-dev
在虚拟机中打开带GUI的软件(QGC、GAZEBO等)时,报错
VMware: vmw_ioctl_command error Invalid argument.
取消上图所示的3D加速即可。
旧版Qt creator卸载
对于使用sudo apt-get install qtcreator
安装的软件都可以使用如下指令卸载
sudo apt-get remove qtcreator
sudo apt-get autoremove
对于.run
格式的qtcreator卸载
安装后的目录中MaintenanceTool
为可执行文件,在这里为qtcreator的卸载文件
如上图所示,在Linux中,绿色名字的都是可执行文件,使用./MaintenanceTool
执行它,会出现可视界面
有对QGC开发感兴趣的还望交流指导
By Fantasy