前言:Ubuntu开发中很多着力点都是基于开发板的,那么我们在ubuntu编写的Qt程序,怎么能够传到开发板上去实践和调试嘞?在Qt Creater 中存在着很多的方式将程序传输到开发板中去,如今将其归纳如下:




方法一:交叉编译Kits

   交叉编译的Kits:也就是Qt Creater中编程,然后通过nfs挂在分享到开发板,在ATK界面get到执行程序,然后在ATK界面直接执行。核心就是nfs挂载。

简约步骤如下:

   ①新建工程:套字节必须选上ATK-I.MX6U Kit(自定义的)

   补充:【ATK-I.MX6U Kit 交叉编译套件将程序在开发板运行   Desktop Qt5.12.9 GCC 64bit 在ubuntu上运行的,Qt Creater自带的 】

ubuntu开发之远程调试Qt程序归纳_开发板

   ②拷贝文件:拷贝工程同级目录下生产的**Debug文件夹下的可执行文件

   补充:这里默认是nfs挂载成功了,nfs挂载在之前的博客里面,我做过详细解答,若有疑惑可以去看看。


ubuntu开发之远程调试Qt程序归纳_Qt_02

ubuntu开发之远程调试Qt程序归纳_Qt_03



方法二:rsync方式远程调试【推荐使用】

      rsync方式远程调试默认是采用 sftp 或 rsync 协议发送程序到板卡。Qt 文件系统(文件系统 V1.9 及之后的)里有 rsync 指令,因此可以很方便地使用此方式进行 Qt 远程调试。区别方法二和方法三,差距就是传输的协议的不同。相比于方法一,好处就在直接用Qt Creater来操控开发板,而不需要传来传去。

      简约步骤如下:

   ①查看版本或者查看是否支持rsync指令:版本要大于等于1.9

cat /etc/version

ubuntu开发之远程调试Qt程序归纳_开发板_04


rsync

ubuntu开发之远程调试Qt程序归纳_文件系统_05

  ②设备连接:没有就点击添加 有的话点击test要保证连接成功

  补充:设备中的用户名不要跟你的ubuntu用户名一样,否则会连接不成功

ubuntu开发之远程调试Qt程序归纳_Qt_06

ubuntu开发之远程调试Qt程序归纳_Qt_07

    ③实验现象:LCD上空白一片(空的工程当然是空白的)



方法三:无rsync方式远程调试

    Qt 文件系统(文件系统 V1.8 之前的) 里没有 sftp 或 rsync,所以我们需要换另外一种方法。 原理很简单,就是使用 ssh 和 scp 把程序发送到开发板上再执行。

   ①查看版本或者查看是否支持rsync指令:版本若小于1.9

   ②设备连接:跟方法二一样。

ubuntu开发之远程调试Qt程序归纳_开发板_08

  ③设置套件:【1】删除通过 SFTP 上传文件,【2】添加 Depoloy 步骤,选择“Custom Process Step”。【3】添加 Command 为 ssh, Arguments:为-p %{Device:SshPort} %{Device:UserName}@%{Device:HostAddress} 'mkdir -p %{CurrentRun:Executable:Path}'。 Working directory:默认为%{buildDir}。【4】添加一个 Custom Process Step 【5】添加 Command 为 scp, Arguments:为-P %{Device:SshPort} %{CurrentRun:Executable:FileName}%{Device:UserName}@%{Device:HostAddress}:%{CurrentRun:Executable:FilePath}。 Working directory:默认为%{buildDir}。

ubuntu开发之远程调试Qt程序归纳_文件系统_09

ubuntu开发之远程调试Qt程序归纳_Qt_10

ubuntu开发之远程调试Qt程序归纳_文件系统_11

ubuntu开发之远程调试Qt程序归纳_开发板_12

ubuntu开发之远程调试Qt程序归纳_开发板_13

   ④实验现象:LCD空白屏



   恭喜各位看到这里,点个赞,祝福你我吧!


2023.11.27补充:

ubuntu开发之远程调试Qt程序归纳_开发板_14