新版本的automake失败了

时间:2014-03-28 14:43:01

标签: iptables automake

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

./configure: line 12080: syntax error near unexpected token `libnfnetlink,'
./configure: line 12080: `PKG_CHECK_MODULES(libnfnetlink, libnfnetlink >= 1.0,'

(automake无法解析PKG_CHECK_MODULES macro ...)PKG_CHECK_MODULES位于pkg.m4中。我们在顶级makefile aclocal --print-ac-dir中插入了一行。这告诉我们它指向pkg.m4所在的目录,以及宏似乎正确定义的位置。我们的系统之间的巨大差异似乎是我有自动化1.11.1,他有automake (GNU automake) 1.11.6 (RN 10.10.2 (sic), assuming 1.10.2)(我不确定RN指的是什么......)。他还有一个更新版本的autoconf(我有2.66,他有2.69)。我注意到在我的同事的pkg.m4文件版本中,PKG_CHECK_MODULES文件中间有一个dnl,我似乎没有,但是,它在右括号{{1}之前所以我假设它没有做任何事情。有谁知道可能导致此错误的原因,或者我接下来会尝试什么?

(注意:我不想降级automake,因为这也必须适用于第三方构建机器。)

谢谢, 约翰

修改

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

[] 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最终会出现在配置脚本本身(我想那时是autoconf,而不是自动生成 - 我的坏 - 还是新的所有这一切)。因此,在配置中,您最终得到一行:

PKG_CHECK_MODULES

哪个bash不理解,并视为语法错误。

1 个答案:

答案 0 :(得分:0)

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

就我而言,它有助于将 pkg-config 降级为 version 0.24,并将 libtool 降级为 version 2.4.2