前言: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自带的 】
②拷贝文件:拷贝工程同级目录下生产的**Debug文件夹下的可执行文件
补充:这里默认是nfs挂载成功了,nfs挂载在之前的博客里面,我做过详细解答,若有疑惑可以去看看。
方法二:rsync方式远程调试【推荐使用】
rsync方式远程调试默认是采用 sftp 或 rsync 协议发送程序到板卡。Qt 文件系统(文件系统 V1.9 及之后的)里有 rsync 指令,因此可以很方便地使用此方式进行 Qt 远程调试。区别方法二和方法三,差距就是传输的协议的不同。相比于方法一,好处就在直接用Qt Creater来操控开发板,而不需要传来传去。
简约步骤如下:
①查看版本或者查看是否支持rsync指令:版本要大于等于1.9
cat /etc/version
或
rsync
②设备连接:没有就点击添加 有的话点击test要保证连接成功
补充:设备中的用户名不要跟你的ubuntu用户名一样,否则会连接不成功
③实验现象:LCD上空白一片(空的工程当然是空白的)
方法三:无rsync方式远程调试
Qt 文件系统(文件系统 V1.8 之前的) 里没有 sftp 或 rsync,所以我们需要换另外一种方法。 原理很简单,就是使用 ssh 和 scp 把程序发送到开发板上再执行。
①查看版本或者查看是否支持rsync指令:版本若小于1.9
②设备连接:跟方法二一样。
③设置套件:【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}。
④实验现象:LCD空白屏
恭喜各位看到这里,点个赞,祝福你我吧!
2023.11.27补充: