可能未定义的宏:AC_MSG_FAILURE
Posted
技术标签:
【中文标题】可能未定义的宏:AC_MSG_FAILURE【英文标题】:possibly undefined macro: AC_MSG_FAILURE 【发布时间】:2016-03-04 19:27:42 【问题描述】:尝试基于 MD5 engine 示例的演示代码创建 OpenSSL 引擎。 readme
文件说我必须使用以下命令来构建引擎:
$ autoreconf -i
$ ./configure
$ make
到目前为止一切顺利。问题是当我执行autoreconf -i
时会产生错误:
configure.ac:18: error: possibly undefined macro: AC_MSG_FAILURE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
我不得不提一下,我已经安装了所有需要的工具(autoconf、automake、libtool、pkg-config),并且我在 Google 搜索的第一页上用尽了所有结果。
如果我使用命令autoreconf -vi
,则不会出现错误,但不会生成 Makefile,因此我无法完成构建过程。
我的操作系统是 Ubuntu 14.04 64 位,OpenSSL 版本是 1.0.1f 2014 年 1 月 6 日。
我做错了什么?有什么问题?
【问题讨论】:
OpenSSL 不使用 Autotools 和朋友。他们有自己的构建系统。请参阅 OpenSSL wiki 上的 Compilation and Installation。 ENGINE 的最简单示例之一是位于<openssl src>/crypto/engine/eng_rdrand.c
的英特尔 RDRAND 引擎。
【参考方案1】:
不幸的是,这是 autoconf 的一个常见问题,错误的宏会报告错误。最简单的做法是查找在AC_MSG_FAILURE
之前调用的最新宏,在链接代码中为AX_CHECK_OPENSSL
。
AX_
前缀由 Autoconf Archive 宏使用,这让您知道在哪里可以找到它。
我建议在引擎的存储库中创建一个m4
目录并将正确的宏文件从存档复制到其中,然后使用autoreconf -fi -I m4
让它在那里查找宏文件。
【讨论】:
以上是关于可能未定义的宏:AC_MSG_FAILURE的主要内容,如果未能解决你的问题,请参考以下文章