Iptables 汽车制造商的新版本失败了

Iptables 汽车制造商的新版本失败了,iptables,automake,Iptables,Automake,我正在尝试构建iptables,这需要automake作为构建步骤的一部分。当我在我的机器上工作时,一位同事遇到了问题。由于automake错误,配置失败,如下所示: ./configure: line 12080: syntax error near unexpected token `libnfnetlink,' ./configure: line 12080: `PKG_CHECK_MODULES(libnfnetlink, libnfnetlink >= 1.0,' (autom

我正在尝试构建iptables,这需要automake作为构建步骤的一部分。当我在我的机器上工作时,一位同事遇到了问题。由于automake错误,配置失败,如下所示:

./configure: line 12080: syntax error near unexpected token `libnfnetlink,'
./configure: line 12080: `PKG_CHECK_MODULES(libnfnetlink, libnfnetlink >= 1.0,'
(automake无法解析
PKG\u CHECK\u MODULES宏
…)PKG\u CHECK\u MODULES位于PKG.m4中。我们在顶级makefile
aclocal--print ac dir
中插入了一行。这告诉我们,它指向pkg.m4所在的目录,并且宏似乎是在该目录中正确定义的。我们的系统之间的最大区别似乎是我有automake 1.11.1,他有automake(GNU automake)1.11.6(RN 10.10.2(原文如此),假设为1.10.2)(我不确定RN指的是什么…)。他还有一个更新版本的autoconf(我有2.66,他有2.69)。我注意到,在我同事的PKGM4文件版本中,在PKGLCHECK模块文件的中间有一个DNL,我看不出它,但是,它正好在一个关闭的括号 []DNL]< /Cord>之前,所以我假设它没有做任何事情。有人知道是什么导致了这个错误,或者我下一步可能会尝试什么吗

(注意:我不想降级automake,因为这也需要在第三方制造机器上进行)

谢谢, 约翰

编辑:

在configure.ac中,您有以下行:

AM_CONDITIONAL([ENABLE_LIBIPQ], [test "$enable_libipq" = "yes"])

PKG_CHECK_MODULES([libnfnetlink], [libnfnetlink >= 1.0],
    [nfnetlink=1], [nfnetlink=0])
AM_CONDITIONAL([HAVE_LIBNFNETLINK], [test "$nfnetlink" = 1])
问题是,
PKG_CHECK_MODULES
宏没有被解决,因此PKG_CHECK_模块最终出现在配置脚本本身中(我想这是autoconf,而不是automake-my bad-对所有这些仍然是新的)。因此,在“配置”中,您将得到一行:

PKG_CHECK_MODULES([libnfnetlink], [libnfnetlink >= 1.0],

bash不理解,并将其视为语法错误。

我的编译环境也有类似的问题


在我的例子中,它帮助将
pkg config
降级为
version 0.24
,将
libtool
降级为
version 2.4.2

这是一个语法错误,可能在某个地方有一个额外的括号-能否编辑您的问题并在第12080行附近添加该文件的一部分?宏是否存在于
aclocal.m4
中?当您运行
aclocal--verbose
时,它是否出现在日志中?宏出现在pkg.m4中,它位于usr/shared/aclocal目录中(我验证了aclocal指向此目录)。明天我会让我的同事运行一个本地-详细的。谢谢你的建议。看来我们已经失去了重现问题的能力(不再发生在干净的结账台上)。可能是构建目录中的某个损坏,但我无法解释是什么。如果我们再次遇到它,我会更新这篇文章。我今天收到了。