我一直在尝试在64位X86 Ubuntu上编译GDB的副本,以便与ARM设备的远程debugging一起使用。 这意味着使用expat编译GDB; 连接到远程debugging器时,GDB使用XMLparsing。 以下是我尝试过的一些东西,以及结果。
用–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。 上面的库二进制文件是从本地编译expat与make install; 我也做了:
apt-get install libexpat1-dev apt-get install expat
两者已经是最新的版本。 与上述结果相同; 我只能编译,如果我省略–with-expat和–with-libexpat-prefix。
build议欢迎。 我怎样才能find更多关于失败的信息 – 我怎样才能弄清楚make过程如何找不到expat的批准?
同行(但我在这里找不到工作答案):
GDBbuild设与外汇
http://comments.gmane.org/gmane.comp.gdb.devel/29306
gdb远程交叉debugging失败与“远程'g'数据包答复太长”
我做了两个改变,为我工作。
首先,我的./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二进制文件,我现在可以连接到目标,停止,启动,查看寄存器,符号等。如果我发现我的编译有任何缺陷,我会跟进,但现在我很好。
我不知道我在这里不了解什么,所以如果有人能够清楚我所犯的错误,我会很感激的。
在Ubuntu的GDB你的程序< – 这是不正确的ARM-linux-gnueabihf-gdb你的程序< – 这是正确的远程gdb
我遇到了完全相同的情况。 虽然我无法给出确切的原因,但我认为这可能与makeinfo有关。 当试图从gdb-7.6升级到gdb-7.11时,我遇到了一些我需要下载的东西; 从而重新运行配置,并在几次之间安装软件包。简而言之:我删除了gdb-7.11文件夹,将其重新整理成一个新的文件夹,然后运行expat:./configure –with-read-line –with-外籍