首页 > 系统应用 > 安装ruby-1.9.3-p429 的时候报错
2015
08-06

安装ruby-1.9.3-p429 的时候报错

安装1.9的时候make报了个错误
ossl_pkey_ec.c: In function ‘ossl_ec_group_initialize’:
ossl_pkey_ec.c:761: warning: implicit declaration of function ‘EC_GF2m_simple_method’
ossl_pkey_ec.c:761: warning: assignment makes pointer from integer without a cast
ossl_pkey_ec.c:816: error: ‘EC_GROUP_new_curve_GF2m’ undeclared (first use in this function)
ossl_pkey_ec.c:816: error: (Each undeclared identifier is reported only once
ossl_pkey_ec.c:816: error: for each function it appears in.)
make[2]: *** [ossl_pkey_ec.o] Error 1
make[2]: Leaving directory `/tmp/ruby/ruby-1.9.3-p429/ext/openssl'
make[1]: *** [ext/openssl/all] Error 2
make[1]: Leaving directory `/tmp/ruby/ruby-1.9.3-p429'
make: *** [build-ext] Error 2
 
这个是centos新版本默认openssl的配置变更取消了对EC_xx的支持,所以出现这种错误。
 
解决办法
修改ext/openssl/ossl_pkey_ec.c代码如下
大慨在763行左右
method = EC_GFp_mont_method();
} else if (id == s_GFp_nist) {
method = EC_GFp_nist_method();
#if !defined(OPENSSL_NO_EC2M) 加上这行包括“#”符号
} else if (id == s_GF2m_simple) {
method = EC_GF2m_simple_method();
#endif 加上这行包括“#”符号
}
if (method) {
 
大慨在818行左右
 
if (id == s_GFp) {
new_curve = EC_GROUP_new_curve_GFp;
#if !defined(OPENSSL_NO_EC2M)
} else if (id == s_GF2m) {
new_curve = EC_GROUP_new_curve_GF2m;
#endif
} else {
ossl_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
}
 
一样的加上带#的2行
最后编辑:
作者:saunix
大型互联网公司linux系统运维攻城狮,专门担当消防员

留下一个回复