我一直在尝试在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的情况下进行编译.
欢迎提出建议.我如何才能找到有关失败的更多信息-我如何才能知道制作过程如何/何处找不到/批准外籍人士?
同行旅客(但我在这里找不到有效的答案):
http://comments.gmane.org/gmane.comp.gdb.devel/29306
gdb remote cross debugging fails with “Remote ‘g’ packet reply is too long”
解决方法:
我进行了两项更改,使其对我有用.
首先,我的./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二进制文件,我现在可以连接到目标,停止,启动,查看寄存器,符号等.如果我发现我的编译存在任何不足,我将进行后续工作,但到目前为止我还不错.
我不知道我在这里不了解什么,因此如果有人可以阐明我犯的错误,我将不胜感激.