ITKeyword,专注技术干货聚合推荐

注册 | 登录

Erlang R16+ Crypto模块与最新Openssl不兼容问题

u011471961 分享于 2014-12-31

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1054

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

方法一:

CFLAGS="-DOPENSSL_NO_EC=1" ./configure

方法二:

原文地址:http://www.kongqingquan.com/archives/145

服务器上新安装了R1601版本后,启动crypto模块 时出现下面的错误:
The on_load function for module crypto returned {error,
{load_failed,
“Failed to load NIF library: ‘/usr/local/lib/erlang/lib/crypto-3.2/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m’”}}

因R16+版本和最新的openssl不兼容所至,服务器上的openssl版本是OpenSSL 1.0.1e-fips 11 Feb 2013。网上说可通过下载openssl源码,修改编译参数即可解决。但修改openssl编译后,问题并没解决。

最后,在erlagn.org中找到的解决方法。

修改crypto源码包中的lib/crypto/c_src/crypto.c文件,把原有定义

#if OPENSSL_VERSION_NUMBER >= 0x009080ffL \
&&!defined(OPENSSL_NO_EC) \
&&!defined(OPENSSL_NO_ECDH) \
&&!defined(OPENSSL_NO_ECDSA)
#define HAVE_EC
#endif

修改为

#if OPENSSL_VERSION_NUMBER >= 0x009080ffL \
&&!defined(OPENSSL_NO_EC) \
&&!defined(OPENSSL_NO_EC2M) \
&&!defined(OPENSSL_NO_ECDH) \
&&!defined(OPENSSL_NO_ECDSA)
#define HAVE_EC
#endif

重新编译安装Erlang即可。

具体见: http://erlang.org/pipermail/erlang-questions/2013-December/076327.html

方法一: CFLAGS="-DOPENSSL_NO_EC=1" ./configure 方法二: 原文地址:http://www.kongqingquan.com/archives/145 服务器上新安装了R1601版本后,启动crypto模块 时出现下面的错误: The on_loa

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。