从here下载
Untarred,mkdir构建,mkdir PC,已执行...
../../gdb/configure --target=arm-linux-gnueabihf
返回...
../../gdb/gdbsupport/common-defs.h:33:10: fatal error: ../../gnulib/config.h: No such file or directory
#include "../../gnulib/config.h"
有一个我可以安装的'gnulib'软件包,安装了它,没有任何区别
编辑../../gdb/gdbsupport/common-defs.h,发现其中一个标头包含基于gdbserver / gdb的内容。
#ifdef GDBSERVER
#include "build-gnulib-gdbserver/config.h"
#else
#include "../../gnulib/config.h"
#endif
返回两个级别,有一个gnulib目录,但没有config.h,ll显示
-rw-rw-r-- 1 user user 51507 May 23 15:10 aclocal.m4
-rw-rw-r-- 1 user user 2417 May 23 15:10 ChangeLog
-rw-rw-r-- 1 user user 69989 May 23 15:10 config.in
-rw-rw-r-- 1 user user 743485 May 23 15:10 configure
-rw-rw-r-- 1 user user 1625 Feb 8 05:49 configure.ac
drwxrwxr-x 5 user user 4096 Jun 2 14:53 import/
-rw-rw-r-- 1 user user 739 May 23 15:10 Makefile.am
-rw-rw-r-- 1 user user 58332 May 23 15:10 Makefile.in
drwxrwxr-x 2 user user 4096 Jun 2 14:53 patches/
-rw-rw-r-- 1 user user 249 Sep 20 2019 README
-rwxrwxr-x 1 user user 5641 May 23 15:10 update-gnulib.sh
所以在写出我的问题的结尾的过程中,我将两个和两个放在一起,只是在回答,所以没有其他人必须经历这个。
您会注意到gnulib中的configure是不可执行的,所以首先我运行了'chmod + x configure',在运行它之前,我想我会回到我的build / PC目录中,然后从那里运行configure,看是否可以递归运行配置gnulib,但事实并非如此。您将需要在gnulib目录中执行./configure来生成config.h。我认为无论您是交叉编译还是不希望gnulib没有明确的目标,看起来它都将仅用于构建GDB。
运行./configure之后,您现在会注意到您有一个config.h,是啊!现在回到您的build / PC目录并运行make。你猜怎么了?现在它将抱怨已经配置了gnulib目录,并且您需要清理才能使make起作用。 “但是乔!”,您说,“那不删除我们迫切需要的config.h吗?” “是的!会的!”因此,您需要将config.h移到其他位置,在gnulib目录中执行“ make distclean”,返回到构建目录,完全清除它,因为混合配置会导致问题,请重新配置再次,不要忘记将配置H复制回GNULIB /,然后运行make。
全天工作。