2016-03-04 72 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

幹得好,爲我工作! –