【发布时间】:2017-07-11 12:17:18
【问题描述】:
我正在尝试从源代码在 Ubuntu 14.04 上安装 OpenSSL 1.0.2k。我已经有 1.0.1f 版本。在 ./config 我运行 make 并得到下一条消息:
cryptlib.c:1019:5: error: conflicting types for 'CRYPTO_memcmp'
int CRYPTO_memcmp(const volatile void *in_a, const volatile void *in_b, size_t len)
^
In file included from cryptlib.h:72:0,
from cryptlib.c:117:
/usr/include/openssl/crypto.h:582:5: note: previous declaration of 'CRYPTO_memcmp' was here
int CRYPTO_memcmp(const void *a, const void *b, size_t len);
制作报告显示:
#include uses headers from different OpenSSL version!
如何为编译器设置正确的头文件?我的路径是:
usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
【问题讨论】:
-
我猜你没有透露一些有趣的信息。我无法在具有发行版副本和 Master 可用(并使用
OpenSSL_1_0_2-stable)的机器上复制。您是否在config和make之前cd进入openssl-1.0.2k目录?路径中有空格吗?另请参阅 OpenSSL wiki 上的 Compilation and Installation。 -
是的,我在
config和make之前将cd转换为openssl-1.0.2k。路径中没有空格。谢谢,我会一遍又一遍地阅读 OpenSSL wiki,直到我看不懂为止。 -
消息 "#include 使用来自不同 OpenSSL 版本的标头!" 来自
util/selftest.pl。你的问题中缺少一些东西。请显示您正在使用的确切命令,并请回显您的 PATH 并将其添加到问题中。我想我们还需要看到./config的完整输出。 -
这是我输入的所有命令,没有别的了。
标签: makefile openssl ubuntu-14.04