龙空技术网

RK3288开发板运行成功!Qt Creator 远程运行和调试硬件相关Qt程序

软核改造祝融叔 584

前言:

今天咱们对“qt程序不能运行”可能比较注意,朋友们都需要分析一些“qt程序不能运行”的相关资讯。那么小编同时在网摘上搜集了一些对于“qt程序不能运行””的相关内容,希望大家能喜欢,我们一起来学习一下吧!

在Linux程序中,如果需要控制硬件,大部分需要root权限,比如访问串口程序,否则提示 permission denied.解决办法之一就用root用户去运行。

如果想在Qt Creator 直接运行root权限程序,有一种方法是用sudo 打开Qt Creator,但这种方法会让Qt Creator 写入root权限才能访问的文件,这样会让后续正常开发大受干扰,这种方法不可取。

但如果想运程运行root权限的程序,必须在Qt Creator远程用户 配置成root用户,其中步骤有很多细节,下面介绍一下。

配置远程root用户

首先ARM开发板必须支持root远程登录,在开发板编辑

sudo vim /etc/ssd/ssd_config

把其中如下一句去掉注释生效

PermitRootLogin yes

保存后重启sshd服务即可,即可用root登录

sudo service sshd restart

但是在Qt Creator用root登录是不准用密码,只能用密钥文件登录,因上要在开发上位机上生成不对称密匙文件用于登录,常规做法用是 ssh-keygen -t rsa生成,但是在QtCreator 配置窗设备一栏中,有一个生成新密钥的按钮,用这个

Qt Creator会在~/.ssh 生成名为 qtc_id和 qtc_id.pub的密钥对,

其中的公钥重命名

cd ~/.ssh

cat qtc_id.pub >> authorized_keys

#把authorized_keys文件上传到ARM开发板上的/root/.ssh 目录下,重启开发板

scp authorized_keys root@192.168.0.113:/root/.ssh

可以点击设备配置窗口的test按钮,如果显示测试成功表示整个环境正常工作

在对应的kits下直接点击绿色三角运行即可,实测可以访问串口,并且远程运行结果可以显示在应用程序输入页,非常方便,相当于把编译,上传,运行三步一键执行。

配置运程调试

远程调试要上一步基础上做更多的设置。

首先ARM开发板上安装 gdbserver,在其终端执行

sudo apt-get install gdbserver

另开在开发上位机中,不能直接用gdb调试,否则会提示

while parsing target description (at line 10): Target description specified unknown architecture "arm"

必要使用多target版本 gdb-multiarch版本

sudo apt-get install gdb-multiarch

在Qt Creator 中的调试器栏增加对gdb-multiarch的配置

在对应的kits中使用这个调试器

这样就可以点击调试按键进行调试了,其中的File transfers from remote targets can be slow.只是较慢

02:05:54: Checking available ports...

02:05:54: Found 101 free ports.

02:05:54: Starting /usr/bin/gdbserver --multi :10000...

02:05:54: Debugging starts

Listening on port 10000

Remote debugging from host 192.168.0.114

Process /opt/dmaService/bin/dmaService created; pid = 30202

File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.

Initializing probes-based dynamic linker interface failed.

Reverting to original interface.

在界面上设置断点,还是能直接在断点停下,并且能单独执行。

至此,整个远程环境搭建完毕,Enjoy it!.

标签: #qt程序不能运行