我一直在尝试在64位X86 Ubuntu上编译GDB的副本,以用于ARM设备的远程调试.这意味着使用expat编译GDB.连接到远程调试器时,GDB使用XML解析.这是我尝试过的一些方法以及结果.

用–with-expat编译

./configure --target=arm-none-eabi --with-expat

make

....

checking whether to use expat... yes

checking for libexpat... (cached) no

configure: error: expat is missing or unusable

Makefile:9125: recipe for target 'configure-gdb' failed

....

用–with-libexpat-prefix编译

ls -alg /usr/local/lib/*expat*

-rw-r--r-- 1 root 999128 Mar 20 23:55 /usr/local/lib/libexpat.a

-rwxr-xr-x 1 root 942 Mar 20 23:55 /usr/local/lib/libexpat.la

lrwxrwxrwx 1 root 17 Mar 20 23:55 /usr/local/lib/libexpat.so -> libexpat.so.1.6.0

lrwxrwxrwx 1 root 17 Mar 20 23:55 /usr/local/lib/libexpat.so.1 -> libexpat.so.1.6.0

-rwxr-xr-x 1 root 534224 Mar 20 23:55 /usr/local/lib/libexpat.so.1.6.0

./configure --target=arm-none-eabi --with-expat --with-libexpat-prefix=/usr/local/lib

make

....

checking whether to use expat... yes

checking for libexpat... (cached) no

configure: error: expat is missing or unusable

Makefile:9125: recipe for target 'configure-gdb' failed

....

我试图以我能想到的所有方式安装expat.上述二进制库是从老外的本地编译make install的;我也做了:

apt-get install libexpat1-dev

apt-get install expat

两者都已经是最新版本.与上述相同的结果;我只能在省略–with-expat和–with-libexpat-prefix的情况下进行编译.

欢迎提出建议.我如何才能找到有关失败的更多信息-我如何才能知道制作过程如何/何处找不到/批准外籍人士?

同行旅客(但我在这里找不到有效的答案):

解决方法:

我进行了两项更改,使其对我有用.

首先,我的./configure命令有点错误.代替

./configure --target=arm-none-eabi --with-expat --with-libexpat-prefix=/usr/local/lib

它应该是

./configure --target=arm-none-eabi --with-expat --with-libexpat-prefix=/usr/local/

因为该前缀应该位于include和lib之上.从配置文件中:

--with-expat include expat support (auto/yes/no)

--with-libexpat-prefix[=DIR] search for libexpat in DIR/include and DIR/lib

但我不确定这是否是真正的解决方案.直到我意外地从gdb的根目录中的gdb目录开始编译之前,我仍然遇到相同的编译错误.让我说清楚一点:

root@scallion:~/gdb-arm-build/gdb-7.11# ls -alg

total 5016

drwxr-xr-x 16 root 4096 Mar 21 23:48 .

drwxr-xr-x 3 root 4096 Mar 20 16:54 ..

drwxr-xr-x 7 root 20480 Mar 21 23:48 bfd

-rw-rw-rw- 1 200 492650 Feb 24 01:55 ChangeLog

-rwxrwxrwx 1 200 7333 Feb 19 2015 compile

drwxr-xr-x 2 root 4096 Mar 20 16:54 config

-rwxrwxrwx 1 200 43614 Feb 9 19:19 config.guess

-rw-rw-rw- 1 200 25713 Feb 9 19:19 config-ml.in

-rwxrwxrwx 1 200 14916 Jun 11 2014 config.rpath

-rwxr-xr-x 1 root 31637 Mar 21 23:48 config.status

-rwxrwxrwx 1 200 36139 Feb 9 19:19 config.sub

-rwxrwxrwx 1 200 486119 Feb 24 01:55 configure

-rw-rw-rw- 1 200 113771 Feb 24 01:59 configure.ac

-rw-rw-rw- 1 200 18002 Jun 11 2014 COPYING

-rw-rw-rw- 1 200 35147 Jun 11 2014 COPYING3

-rw-rw-rw- 1 200 7639 Jun 11 2014 COPYING3.LIB

-rw-rw-rw- 1 200 25291 Jun 11 2014 COPYING.LIB

drwxr-xr-x 2 root 4096 Mar 20 16:54 cpu

-rwxrwxrwx 1 200 22464 Feb 19 2015 depcomp

-rw-r--r-- 1 200 1887 Feb 24 01:59 djunpack.bat

drwxr-xr-x 2 root 4096 Mar 21 23:49 etc

drwxr-xr-x 27 root 36864 Mar 21 23:51 gdb **<<<<<<<< Here**

drwxr-xr-x 12 root 4096 Mar 20 16:54 include

-rwxrwxrwx 1 200 14675 Feb 19 2015 install-sh

drwxr-xr-x 2 root 4096 Mar 21 23:48 intl

drwxr-xr-x 4 root 4096 Mar 21 23:49 libdecnumber

drwxr-xr-x 4 root 12288 Mar 21 23:48 libiberty

-rw-rw-rw- 1 200 263820 Feb 9 19:19 libtool.m4

-rw-rw-rw- 1 200 1768 Jun 11 2014 ltgcc.m4

-rw-rw-rw- 1 200 249723 Jun 11 2014 ltmain.sh

-rw-rw-rw- 1 200 6126 Jun 11 2014 lt~obsolete.m4

-rw-rw-rw- 1 200 11950 Jun 11 2014 ltoptions.m4

-rw-rw-rw- 1 200 4372 Jun 11 2014 ltsugar.m4

-rw-rw-rw- 1 200 703 Jun 11 2014 ltversion.m4

-rw-rw-rw- 1 200 3909 Feb 19 2015 MAINTAINERS

-rw-r--r-- 1 root 414118 Mar 21 23:48 Makefile

-rw-rw-rw- 1 200 30110 Feb 9 19:19 Makefile.def

-rw-rw-rw- 1 200 1719859 Feb 24 01:57 Makefile.in

-rw-rw-rw- 1 200 69660 Feb 24 01:55 Makefile.tpl

-rw-r--r-- 1 200 736309 Feb 24 01:59 md5.sum

-rwxrwxrwx 1 200 6872 Feb 19 2015 missing

-rwxrwxrwx 1 200 2179 Jun 11 2014 mkdep

-rwxrwxrwx 1 200 3538 Feb 19 2015 mkinstalldirs

-rwxrwxrwx 1 200 2636 Feb 19 2015 move-if-change

drwxr-xr-x 5 root 12288 Mar 21 23:49 opcodes

drwxr-xr-x 7 root 4096 Mar 21 23:49 readline

-rw-rw-rw- 1 200 1719 Jun 11 2014 README

-rw-rw-rw- 1 200 961 Jun 11 2014 README-maintainer-mode

-rw-r--r-- 1 root 13 Mar 21 23:48 serdep.tmp

drwxr-xr-x 33 root 4096 Mar 21 23:49 sim

-rwxrwxrwx 1 200 9150 Feb 9 19:19 src-release.sh

-rwxrwxrwx 1 200 2265 Jun 11 2014 symlink-tree

drwxr-xr-x 2 root 4096 Mar 20 16:54 texinfo

-rwxrwxrwx 1 200 6421 Feb 19 2015 ylwrap

drwxr-xr-x 14 root 4096 Mar 21 23:48 zlib

直到我从目录gdb-arm-build / gdb-7.11 / gdb运行make,它对我来说才成功.使用生成的gdb二进制文件,我现在可以连接到目标,停止,启动,查看寄存器,符号等.如果我发现我的编译存在任何不足,我将进行后续工作,但到目前为止我还不错.

我不知道我在这里不了解什么,因此如果有人可以阐明我犯的错误,我将不胜感激.

标签:debugging,gdb,arm,linux,xml

来源: https://codeday.me/bug/20191118/2031774.html

linux 编译 expat,xml-无法使用expat编译GDB以用于远程调试相关推荐

  1. 用GDB Server进行远程调试

    某些时候由于模拟环境的限制,调试必须要在目标板上进行.由于嵌入式系统资源比较有限,一般不能在目标板上直接构建GDB的调试环境,这时我们通常采用gdb+gdbserver的远程调试方法:gdbserve ...

  2. python:xml.parsers.expat --- 使用 Expat 的快速 XML 解析

    python:xml.parsers.expat --- 使用 Expat 的快速 XML 解析 XMLParser对象 ExpatError 异常 示例 内容模型描述 Expat 错误常量 xml. ...

  3. linux的gdb远程调试,嵌入式Linux的GDB远程调试如何实现呢?

    有道启新嵌入式研究院--远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接.使用GDB标准远程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能.调试s ...

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

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

  5. vs linux 交叉编译,VS结合VisualGDB搭建OpenWrt交叉编译远程调试开发环境

    由于此开发环境涉及3设备协同工作,因此先说明一下整体开发环境的配置以及每部分所负责的功能: 1.Windows PC 这里我用的是64位Win7,作为VS的安装环境Windows自然是必不可少的,本机 ...

  6. ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序

    1 背景 在学习Linux系统上的一些漏洞知识的时候,往往需要进行"实地测试",但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有G ...

  7. eclipse gdb gdbserver 远程调试

    https://blog.csdn.net/linuxarmsummary/article/details/44975495 我们在 Linux 主机中搭建我们的开发环境,使用 Ubuntu 10.0 ...

  8. Linux下Debug模式启动Tomcat进行远程调试

    J2EE开发各类资源下载清单,  史上最全IT资源,点击进入! 一.      应用场景 在实际的测试过程中,可能会遇到由于程序执行的不间断性,我们无法构造测试场景来验证某个功能的正确性,只有通过代码 ...

  9. linux安装了xml怎么编译,linux下libxml库的安装及编译

    linux下libxml库的安装及编译 1. 下载和安装LIBXML2 Libxml2是个C语言的XML程式库,能简单方便的提供对XML文件的各种操作,并且支持XPATH查询,及部分的支持XSLT转换 ...

最新文章

  1. 中随机打乱序列的函数_提前准备,方能“随机”应对,人生不悔
  2. Node.js之readline模块的使用
  3. Memcpy, blockcopy的进一步理解
  4. python爬取数据生成词云_Python 爬取生成中文词云以爬取知乎用户属性为例
  5. LeetCode(657)——机器人能否返回原点(JavaScript)
  6. NHibernate使用--环境搭建
  7. linux 系统性能分析常用命令
  8. 「leetcode」452. 用最少数量的箭引爆气球【贪心算法】详细图解
  9. jQuery jqModal弹出层
  10. 研究生学历,毕业就给房!给户口!
  11. 2018年 - 年终总结
  12. chrome浏览器清理缓存也没有用,每次必须重启怎么办?
  13. hive实现两列数据合并成一列
  14. 计算机硬盘小影响,系统C盘容量太小有哪些危害?又要如何扩容呢?今天再说一遍!...
  15. linux磁盘文件大小排序,Linux中查看磁盘大小、文件大小、排序方法小结
  16. 计算机网络协议层次结构图
  17. 用Python 画螺旋正方形
  18. Vue3响应式API ref和reactive
  19. MSM实现tomcat集群的session共享
  20. 通过配置文件改变Ubuntu系统语言

热门文章

  1. python np random choice_Python Numpy random.choice() 数据分布
  2. 经典文献阅读之--Lifelong SLAM(变化环境中Lifelong定位建图)
  3. 西北人端午节必吃:食家巷老油饼搭配甑糕尝尽节日美味和文化内涵
  4. 小程序生成海报,easy-canvas, painting参数使用demo
  5. 区块链每日快讯(0127)-火星人宣布退休,MDC项目疑似跑路
  6. 公务员-行测-判断推理01图形推理
  7. QT学习小记1----音乐播放器(1)
  8. windows剪切板的历史记录
  9. Android_基于BMOB的聊天软件_添加好友
  10. Ubuntu(20.04)中安装搜狗输入法详细教程