autotools:autoreconf 找不到宏,但 aclocal 可以

Posted

技术标签:

【中文标题】autotools:autoreconf 找不到宏,但 aclocal 可以【英文标题】:autotools: autoreconf can't find macro but aclocal can 【发布时间】:2010-07-15 21:49:11 【问题描述】:

作为开发人员,我是第一次尝试使用 autotools,所以请见谅。

我正在使用Check 单元测试库,它在check.m4 中定义了宏AM_PATH_CHECK,该宏安装在/usr/local/share/aclocal 中。通过编辑/usr/share/aclocal/dirlist 以包含/usr/local/share/aclocal,我设法让aclocal 识别AM_PATH_CHECK

所以aclocal 运行并干净地返回(没有任何额外的参数)。

但是,当我运行 autoreconf --install 时,我得到了错误

configure.ac:36: error: possibly undefined macro: AM_PATH_CHECK
      If this token and others are legitimate, please use m4_pattern_allow
      See the Autoconf documentation
autoreconf: /usr/local/bin/autoconf failed with exit status: 1

我做错了什么?如何让autoreconf知道AM_PATH_LOCAL的存在?

【问题讨论】:

【参考方案1】:

听起来 Check 自身安装不正确。你应该在那里提交一个错误。解决此问题的方法是添加

AC_CONFIG_MACRO_DIR([m4])

configure.ac,然后添加

ACLOCAL_AMFLAGS += -I m4

复制到Makefile.am,然后将check.m4复制到将在项目根目录中创建的m4目录。

【讨论】:

检查可能是问题所在。我尝试了你的修复,但得到了同样的错误。 不,没有这样做。不过,谢谢。【参考方案2】:

我让我的一位同行帮助我,我们发现问题在于没有安装 pkg-config。 (显然,不是 OSX 的 XCode 工具的一部分)。

我不确定该向谁提交有关此问题的错误 - Check 应该在安装时检查 pkg-confg 吗?应该autoconf?或者它是如此的标准以至于我应该向 XCode 工具的人抱怨?

【讨论】:

以上是关于autotools:autoreconf 找不到宏,但 aclocal 可以的主要内容,如果未能解决你的问题,请参考以下文章

autoreconf -fi 错误:可能未定义宏:AC_DEFINE 如果此令牌和其他令牌是合法的,请使用 m4_pattern_allow

【转】GNU autotools(二)关于autogen.sh的说明

找不到自动制作错误“./ltmain.sh”

在OS X v10.7(Lion)上安装autoreconf?

Linux开发,内核代码,找不到内核宏定义,找不到内核函数

Linux开发,内核代码,找不到内核宏定义,找不到内核函数