7. 远程连接编译部署Qt程序

本章将介绍下,在宿主PC上使用Qt Creator,通过ssh连接LubanCat板卡进行远程连接部署、运行、调试等操作。

提示

下面是在宿主PC ubuntu20.04上搭建环境,并进行测试。

7.1. Qt Creator配置

前面我们在PC(ubuntu20.04)主机上配置过交叉编译环境,我们接着在上面配置远程连接环境。 打开 Qt Creator,点击 工具 > 选项 进入交叉编译的构建套,点击 设备

qt_remote

在弹出窗口,点击 添加

qt_remote

选择种类,点击开始配置向导:

qt_remote

设置名称,输入板子的IP,和登录的用户名,点击 下一步

qt_remote

进入密钥部署,一般默认即可,最后点击 完成

qt_remote

点击完成后,会自动进入连接测试,输入密码即可。LubanCat板卡默认账号是cat,密码是temppwd。

qt_remote

最后测试连接成功:

qt_remote

提示

如果提示SFTP或者rsync错误(command not found),可能是板卡没有安装,板卡使用命令:sudo apt install rsync。

创建device成功后,需要在你的交叉编译套件中添加,如果就一个设备默认就添加:

qt_remote

7.2. 配置ssh连接

上面配置完成后,就可以正常部署运行,每次ssh连接都需要输入密码,接下来讲下使用密钥登录, 打开Qt Creator,依次点击 工具 > 选项 > 设备,就可以看到前面配置的ssh登录设备:

qt_remote

1、如果没有密钥对,先点击生成密钥:

qt_remote

2、保存的密钥对默认在用户目录~/.ssh下,然后点击部署密钥,选择前面生成的公钥,输入LubanCat的用户密码即可完成部署。 或者自己复制公钥到板卡上,然后命令:

cat qtc_id.pub >> ~/.ssh/authorized_keys
# 如果没有authorized_keys,使用命令创建一个:
touch authorized_keys

3、部署密钥之后,验证类型点击使用 Specific key,之后就可以使用密钥直接远程连接。

7.3. 连板运行

先随便打开一个Qt例程,这里是打开了一个gui/openglwindow例程,单击 项目,然后选择前面配置的LubanCat交叉编译套件,然后单击 Run:

qt_remote

先修改 Remote Directory 目录,需要打开pro文件,修改部署路径:

qt_remote

运行测试使用eglfs,在命令行添加 -platform eglfs ,也可以在后面的 Run Environment 中添加环境变量和默认系统的环境变量,比如:

qt_remote

最后点击运行:

qt_remote

会编译程序,然后远程连接,部署运行,同时也会传输文件到板卡目录下。 eglfs默认占用全屏输出,也可以使用xcb、LinuxFB等其他插件显示。

7.4. 连板调试

接着使用上面的例程进行调试, 先在PC主机端,先使用命令安装gdb工具:

sudo apt install -y  gdb-multiarch

LubanCat板端一般默认已经安装gdb工具,如果没有可以使用命令安装下:

apt install -y gdbserver

然后打开Qt Creator,依次点击 工具 > 选项 > kits > debuggers,单击 Add

qt_remote

添加路径/usr/bin/gdb-multiarch,,保存应用,,然后到交叉编译套件处添加gdb工具:

qt_remote

使用刚才的例程gui/openglwindow,,在main.cpp中,点击一行的前端,添加断点, 然后单击调试,显示如下:

qt_remote