qt远程调试ARM板
- 前期准备
使用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/imgconvert/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板相关推荐
- QT程序到arm板(s5pv210)的移植之旅
前记: 由于毕设的原因,将来需要移植QT程序到arm板子运行,故有此文. 看博客寻资料,看到一位作者写道:知识来源于互联网,必将回报互联网.赞. 介于从陌生到熟悉的折腾,故将移植过程记录,发文,以己省 ...
- Qtcreator远程调试arm开发板程序指南
环境配置 1 ,交叉编译gdb, 主要是gdbserver,把gdbserver 放在arm开发板的可执行程序目录里 2 安装gdb-multiarch, sudo apt-get install g ...
- 【GDB】gdbserver的使用,远程调试开发板
0.将gdbserver拷贝到目标板子上 注:gdbserver在交叉编译工具目录/debug-root/usr/bin下 可用file命令查看 --------------------------- ...
- linux 远程调试文件夹,GDB远程调试开发板程序
一.概述 可能我们都熟悉直接在发行版linux系统下调试系统,只需要在安装系统的时候包含了调试工具,直接可以根据gdb进行调试.但对于很多做嵌入式的来说,可能经常需要调试运行在开发板上的应用程序,下面 ...
- Qt程序在arm板上运行
1.Qt中的库需要拷贝到arm板上: 2.配置环境变量,参考该文. 总结: 1.可执行程序在终端中运行前,需要配置好环境变量,我们用export的形式配置的,这种形式只在当前终端中生效(因为,如果我们 ...
- Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!
注意:若转载,请贴上链接"https://blog.csdn.net/qq_41042595/article/details/112308184",如若发现抄袭或未标明来源现象,都 ...
- VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序
基本流程跟我的另一篇文章<VsCode + gdb + gdbserver远程调试C++程序>一样,不一样的是需要重新编译gdb和交叉编译gdbserver. 一.准备工作 sudo ap ...
- 使用gdbserver远程调试
使用gdbserver远程调试 1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译 到GNU官方FTP下载,目前最新版的是gdb-6.7.1 下载地址:http://ft ...
- JLinkGDBServer调试ARM linux内核
1.修改Makefile编译优化级别 编译器优化后,很多调试信息看不到,不好调试,修改linux-4.5.3/Makefile的KBUILD_CFLAGS优化级别为"-O1".(& ...
- Qt Creator远程调试嵌入式ARM开发板
1 环境 Win10 64位系统上通过Virtual Box安装了一个Ubuntu虚拟机. ubuntu的版本:Linux kernel 4.15.0-142-generic #146~16.04. ...
最新文章
- ARP(Accounting Resource Planning)项目感想
- html漂浮广告随页面移动代码,JS漂浮广告代码,慢慢漂移的广告JS代码
- SQL Server远程部署
- LeetCode 551. 学生出勤记录 I
- 都 2021 年了,Serverless 能取代微服务吗?
- apache-storm分布式计算(drpc)开发心得
- 【JavaScript算法】---快速排序法
- 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
- nero免费中文版内含注册激活码获取器
- socket.io实现简单多人聊天室
- CIH病毒的分析与清除
- 2021上半年软考中级软件设计师考试心得(10天时间你可以拿捏的)
- 程序员坐行李箱迎寒风编码 2 小时,目击者:激励我写了一篇论文!
- 正面管教读书笔记 05 当心逻辑后果
- 一加8p和鸿蒙系统,网友热议话题:华为鸿蒙系统2.0曝新消息,一加8T口碑出炉...
- webm转换mp4最简单方法?
- libcmt.lib和libcmtd.lib链接库冲突错误的解决方案
- 黑马程序员_JAVA之IO流的(转换流,数据输入输出流等)
- 树莓派 编译安装OpenCV4.1.0+opencv_contrib-4.1.0
- 总是半途而废?这四条建议让你培养习惯的成功率翻倍
热门文章
- coffe的前端界面图(css+html)
- 斗破苍穹手游找不到以前服务器,斗破苍穹手游服务器爆满怎么进 服务器爆满进入方法[图]...
- 大型网站之网站静态化(综合篇)
- 调手表(蓝桥杯2018年B组真题)
- elasticserach(一)
- Halcon 算子 Orientation_region
- 西安交大计算机专业考研复试,2018西安交通大学计算机考研复试分数线_计算机考研分数线...
- MINA、Netty、Twisted一起学(十二):HTTPS
- 密码学--认证协议(Authentication Protocol)分类
- 计算机的发明人是约翰用英语,电脑发明者是谁:约翰·冯·诺依曼(发明于1946年)...