Iptables 汽车制造商的新版本失败了
我正在尝试构建iptables,这需要automake作为构建步骤的一部分。当我在我的机器上工作时,一位同事遇到了问题。由于automake错误,配置失败,如下所示: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
./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中。我们在顶级makefileaclocal--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,我看不出它,但是,它正好在一个关闭的括号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指向此目录)。明天我会让我的同事运行一个本地-详细的。谢谢你的建议。看来我们已经失去了重现问题的能力(不再发生在干净的结账台上)。可能是构建目录中的某个损坏,但我无法解释是什么。如果我们再次遇到它,我会更新这篇文章。我今天收到了。