1. 前期准备
    使用qt5.8调试
    pc机必须能与arm板ssh通信。
    先查看pc版本的gdb以及gdb使用到python(注意:qt3.1之后调试需要python)
    查看gdb版本:可通过qtcreator查看(tool->options->build&run->debuggers),如下图红色矩形区域

    查看gdb使用的python版本,由上图找到gdb文件目录,打开它。使用ldd命令查看,可以发现,gdb使用的python3.5版本如下图:

    好了,摸清我们pc端使用的gdb版本和python,我们就开始配置安装吧。为什么要有这个前期准备,因为qt调试必须要使用对应的python版本(本人曾编译python2.7版本,结果用qt调试的时候看不到调试信息)

gdb安装
0.下载gdb-7.11.1.tar.gz(http://www.gnu.org/software/gdb/download/)手动到网页下载

1、将gdb-7.11.tar.gz拷贝到任意的位置

2、解压gdb-7.11.1.tar.gz

tar -zxvf gdb-7.11.1.tar.gz

3、编译arm-linux-gdb(gdb client)(下面/usr/local是安装目录,可自行更改)

到目录gdb-7.7.1下

cd gdb-7.7.1

./configure−−target=arm−linux−−prefix=/usr/local/arm−gdb7.11.1−−with−python(注意,执行该命令之前,首先要确认,本地python是什么版本,如下图,先使用whichpython查看当前使用的版本,我们看到是2.7版本,不是我们需要的,所以使用whereispython命令查看本机的所以python版本,我们看到在3.5版本也有安装(安装目录/usr/bin),若没有安装,则需要下载安装)![](https://img−blog.csdnimg.cn/imgconvert/8f27f6a6d56f52b2049459156b1146a1.png)接下来我们需要把当前的python换成3.5,使用如下命令:exportPATH=/usr/bin/:./configure --target=arm-linux- -prefix=/usr/local/arm-gdb7.11.1 --with-python(注意,执行该命令之前,首先要确认,本地python是什么版本,如下图,先使用which python 查看当前使用的版本,我们看到是2.7版本,不是我们需要的,所以使用whereis python 命令查看本机的所以python版本,我们看到在3.5版本也有安装(安装目录/usr/bin),若没有安装,则需要下载安装) ![](https://img-blog.csdnimg.cn/img_convert/8f27f6a6d56f52b2049459156b1146a1.png) 接下来我们需要把当前的python换成3.5,使用如下命令:export PATH=/usr/bin/:./configure−−target=arm−linux−−prefix=/usr/local/arm−gdb7.11.1−−with−python(注意,执行该命令之前,首先要确认,本地python是什么版本,如下图,先使用whichpython查看当前使用的版本,我们看到是2.7版本,不是我们需要的,所以使用whereispython命令查看本机的所以python版本,我们看到在3.5版本也有安装(安装目录/usr/bin),若没有安装,则需要下载安装)![](https://img−blog.csdnimg.cn/imgc​onvert/8f27f6a6d56f52b2049459156b1146a1.png)接下来我们需要把当前的python换成3.5,使用如下命令:exportPATH=/usr/bin/:PATH,在查看下当前python版本就变成3.5的了

target指明编译生成的GDB用于调试ARM-LINUX程序,prefix指明安装目录

–with-python将python模块编译进来。因为QT creator3.1版本开始,调试必须有Python功能。

Ubuntu自带Python。位于/usr/bin/。
$make

如果make出现如下错误

checkint for python3.5... /usr/bin/python3.5
checkint for python3.5... no
configure: error: no usable python found at python3.5

则需要在执行apt-get install python3.5-dev(因为c++调用python是通过dev的)。安装完成后重新configure再执行make。
若出现Python:未定义符号:pyunicodeucs2_decode等类似的错误(字符编码问题),则在编译使用如下选项:–enable-unicode=ucs4,在编译。如果还是出现相同错误,则需要自己下载对应的python版本编译安装,我就是出现这样问题,文末有python安装过程。
#make install
执行完毕后,可在安装目录下,看到生成的二进制文件,如下图

4、编译gdb server

#cd ./gdb/gdbserver (进入gdb-7.7.1目录里执行该句)

#./configure --host=arm-buildroot-linux-gnueabihf --prefix==/usr/local/arm-gdb7.11.1 /server
这里一定要指定生成主机目标(因为gdbserver要在arm下跑的)
#make -j8 && make install
假若出现一些werror的错误(警告信息当作错误处理),则输入如下命令./configure --disable-werror然后再make就行
执行完毕后,可在安装目录下,看到生成的二进制文件,如下图

准备调试
1.将arm-linux-gdbserver 拷贝到ARM板子的系统bin目录,并重命名未gdbserver(一定要拷贝到系统bin目录否则会出现如下情况)
2. 然后配置qt构建套
1)首先添加gdb调试器,如下图点击添加,浏览我们之前生成的arm-linux-gdb,设置即可,如下图

2)然后给arm版本的qt,添加步骤1)添加的调试器,如下图

这样就添加成功了。
3.配置远程设备
1)添加设备,tool->options->devices->add->gener…device->start wizard,按着向导,输入Ip,用户,密码

然后测试是否可以远程连接到arm板,测试成功如下:

2)配置本地生成的二进制文件传送到arm板子,在pro文件添加如下命令,其中/usr/ics是我们本地生成的文件传送到arm的目录

4.启动调试
随便打开一个qt应用程序,编译arm版本。点击调试,如果成功出现如下图

如果加载动态库失败或者位置无法定位,则需要手动指定符号库位置(是我们交叉编译arm版本qt的系统路径),如下图

python安装

$ wget -c https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
$ tar -xzvf Python-3.5.2.tgz
$ cd Python-3.5.2/
$  ./configure  --prefix=/usr/local/python --enable-shared --enable-unicode=ucs2 LDFLAGS="-L/usr/lib/x86_64-linux-gnu"
$ make
$ sudo make install

其中, 上面的wget -c (url)是下载命令,参数-c表示支持断点下载, url是目标文件下载的绝对路径

“-L/usr/lib/x86_64-linux-gnu”中的x86_64-linux-gnu在/usr/lib/下可以找到, 这是x86_64可以看出我的系统是64的, 这里根据自己的系统进行键入。
–enable-shared 表示生成动态库,gdb是动态调用python,一开始没有加则报错未能找到或者python不可用
–enable-unicode=ucs2 标识使用ucs2编码编译,因为gdb调用python时候是用ucs2。

好了, 安装完后我们检测下, 终端键入python --version, 回车, 再键入which python查看版本
如果当前版本路径不对,则再按照上面步骤设置道我们编译安装的python版本目录上

qt远程调试ARM板相关推荐

  1. QT程序到arm板(s5pv210)的移植之旅

    前记: 由于毕设的原因,将来需要移植QT程序到arm板子运行,故有此文. 看博客寻资料,看到一位作者写道:知识来源于互联网,必将回报互联网.赞. 介于从陌生到熟悉的折腾,故将移植过程记录,发文,以己省 ...

  2. Qtcreator远程调试arm开发板程序指南

    环境配置 1 ,交叉编译gdb, 主要是gdbserver,把gdbserver 放在arm开发板的可执行程序目录里 2 安装gdb-multiarch, sudo apt-get install g ...

  3. 【GDB】gdbserver的使用,远程调试开发板

    0.将gdbserver拷贝到目标板子上 注:gdbserver在交叉编译工具目录/debug-root/usr/bin下 可用file命令查看 --------------------------- ...

  4. linux 远程调试文件夹,GDB远程调试开发板程序

    一.概述 可能我们都熟悉直接在发行版linux系统下调试系统,只需要在安装系统的时候包含了调试工具,直接可以根据gdb进行调试.但对于很多做嵌入式的来说,可能经常需要调试运行在开发板上的应用程序,下面 ...

  5. Qt程序在arm板上运行

    1.Qt中的库需要拷贝到arm板上: 2.配置环境变量,参考该文. 总结: 1.可执行程序在终端中运行前,需要配置好环境变量,我们用export的形式配置的,这种形式只在当前终端中生效(因为,如果我们 ...

  6. Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!

    注意:若转载,请贴上链接"https://blog.csdn.net/qq_41042595/article/details/112308184",如若发现抄袭或未标明来源现象,都 ...

  7. VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序

    基本流程跟我的另一篇文章<VsCode + gdb + gdbserver远程调试C++程序>一样,不一样的是需要重新编译gdb和交叉编译gdbserver. 一.准备工作 sudo ap ...

  8. 使用gdbserver远程调试

    使用gdbserver远程调试   1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译 到GNU官方FTP下载,目前最新版的是gdb-6.7.1 下载地址:http://ft ...

  9. JLinkGDBServer调试ARM linux内核

    1.修改Makefile编译优化级别 编译器优化后,很多调试信息看不到,不好调试,修改linux-4.5.3/Makefile的KBUILD_CFLAGS优化级别为"-O1".(& ...

  10. Qt Creator远程调试嵌入式ARM开发板

    1  环境 Win10 64位系统上通过Virtual Box安装了一个Ubuntu虚拟机. ubuntu的版本:Linux kernel 4.15.0-142-generic #146~16.04. ...

最新文章

  1. ARP(Accounting Resource Planning)项目感想
  2. html漂浮广告随页面移动代码,JS漂浮广告代码,慢慢漂移的广告JS代码
  3. SQL Server远程部署
  4. LeetCode 551. 学生出勤记录 I
  5. 都 2021 年了,Serverless 能取代微服务吗?
  6. apache-storm分布式计算(drpc)开发心得
  7. 【JavaScript算法】---快速排序法
  8. 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
  9. nero免费中文版内含注册激活码获取器
  10. socket.io实现简单多人聊天室
  11. CIH病毒的分析与清除
  12. 2021上半年软考中级软件设计师考试心得(10天时间你可以拿捏的)
  13. 程序员坐行李箱迎寒风编码 2 小时,目击者:激励我写了一篇论文!
  14. 正面管教读书笔记 05 当心逻辑后果
  15. 一加8p和鸿蒙系统,网友热议话题:华为鸿蒙系统2.0曝新消息,一加8T口碑出炉...
  16. webm转换mp4最简单方法?
  17. libcmt.lib和libcmtd.lib链接库冲突错误的解决方案
  18. 黑马程序员_JAVA之IO流的(转换流,数据输入输出流等)
  19. 树莓派 编译安装OpenCV4.1.0+opencv_contrib-4.1.0
  20. 总是半途而废?这四条建议让你培养习惯的成功率翻倍

热门文章

  1. coffe的前端界面图(css+html)
  2. 斗破苍穹手游找不到以前服务器,斗破苍穹手游服务器爆满怎么进 服务器爆满进入方法[图]...
  3. 大型网站之网站静态化(综合篇)
  4. 调手表(蓝桥杯2018年B组真题)
  5. elasticserach(一)
  6. Halcon 算子 Orientation_region
  7. 西安交大计算机专业考研复试,2018西安交通大学计算机考研复试分数线_计算机考研分数线...
  8. MINA、Netty、Twisted一起学(十二):HTTPS
  9. 密码学--认证协议(Authentication Protocol)分类
  10. 计算机的发明人是约翰用英语,电脑发明者是谁:约翰·冯·诺依曼(发明于1946年)...