2016-03-04 41 views
0

试图根据MD5 engine的示例代码创建OpenSSL引擎。该readme文件说,我必须使用下面的命令,以建立发动机:可能未定义的宏:AC_MSG_FAILURE

$ 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配置),我用尽了所有的搜索结果在首页上。
如果我使用命令autoreconf -vi,错误不会显示,但生成文件不会生成,因此我无法完成生成过程。
我的操作系统是Ubuntu 14.04 64位,OpenSSL版本是1.0.1f 2014年1月6日。
我在做什么错?问题是什么?

+0

OpenSSL不使用Autotools和朋友。他们有自己的构建系统。请参阅OpenSSL wiki上的[编译和安装](https://wiki.openssl.org/index.php/Compilation_and_Installation)。 – jww

+0

一个发动机的最简单的例子是位于[' /crypto/engine/eng_rdrand.c'](http://github.com/openssl/openssl/blob/master/crypto/engine/eng_rdrand英特尔RDRAND引擎。C)。 – jww

回答

2

这是一个不幸的autoconf常见问题,其中错误报告为错误的宏。最简单的方法是查找AC_MSG_FAILURE之前调用的最近的宏,该宏在链接代码中为AX_CHECK_OPENSSL

AX_前缀由Autoconf Archive宏使用的,它给你一个想法在哪里可以找到它。

我建议在引擎的存储库中创建一个m4目录,并将正确的宏文件从acarchive复制到它,然后使用autoreconf -fi -I m4让它在那里寻找宏文件。

+0

干得好,为我工作! –