编译时,OpenSSL标头与当前版本不匹配

use*_*022 6 openssl header freeradius

在尝试编译freeRADIUS服务器2.2.3时,我收到以下错误消息:

checking for OpenSSL version >= 0.9.7... yes
checking OpenSSL library and header version consistency... library: 90819f header: 90812f... no
configure: error: in `/Users/tyrexionibus/Downloads/freeradius-server-2.2.3':
configure: error: OpenSSL library version does not match header version
Run Code Online (Sandbox Code Playgroud)

实际上,openSSL版本是:

tyrexionibus$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)

位于/usr/include/openssl/opensslv.h中的标题包含:

#define OPENSSL_VERSION_NUMBER 0x0090819fL
Run Code Online (Sandbox Code Playgroud)

编辑它并不能解决问题.

我该如何解决这个问题?

von*_*ond 1

您可能应该检查config.log生成者configure(在同一文件夹中):看起来您至少有 2 个甚至 3 个 OpenSSL 版本:0.9.8r、0.9.8y 和 1.0.1f。

解释:

1) OPENSSL_VERSION_NUMBER= 0x0090819fin/usr/include/openssl/opensslv.h表示0.9.8y安装到/usr;

2) 命令的输出openssl version表明您1.0.1f的 PATH 中有某个位置,但1.0.1f定义OPENSSL_VERSION_NUMBER0x1000106fL, not 0x0090819f,因此它与上面的 1) 是不同的副本。

tyrexionibus$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)

3)90812f在configure的输出中0.9.8r

您还可能会发现OpenSSL 版本矩阵可用于将十六进制版本号(来自 opensslv.h)与人类可读的版本字符串进行匹配。