linux编译ruby1.8.7 出现OPENSSL错误

安装ruby-1.8.7出现编译错误.如下:

ossl_pkey_ec.c:815: error: ‘EC_GROUP_new_curve_GF2m’ undeclared (first use in this function)

ossl_pkey_ec.c:815: error: (Each undeclared identifier is reported only once

ossl_pkey_ec.c:815: error: for each function it appears in.)

make[1]: *** [ossl_pkey_ec.o] Error 1

make[1]: Leaving directory `/home/vagrant/ruby-1.8.7-p357/ext/openssl‘

make: *** [all] Error 1

解决方法如下:

vi ~/install/ruby-1.8.7-p357/ext/openssl/ossl_pkey_ec.c

改下面4个地方,+号是添加的:

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) {

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 {

rb_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");

}

改好了之后,再重新编译,如下:

./configure --prefix=/usr/local/ruby

make

make install

然后再查看ruby版本号:

/usr/local/ruby/bin/ruby -v

ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]

好了,问题解决.

时间: 2025-01-13 05:40:15

linux编译ruby1.8.7 出现OPENSSL错误的相关文章

linux编译mysql关于mysql.sock的错误

我编译mysql时,都直接把mysql.sock指向了mysql/run/下面:  -DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock \ 提示mysql.sock文件找不到,我总结我遇到的情况.第一种:没有指定mysql.sock路径,这时我们可以建一个软链接指向该地址,或者直接更改/etc/my.cnf更改sock文件地址 第二种:自己的安装顺序出错了,这里记录一下linux编译mysql的步骤. 1.wget mysql下载地址. 2.yum

Linux编译Hadoop成64位常见错误

[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.2.0:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: protoc version is 'libprotoc 2.4.1', expected version is '2.5.0' -> [Help 1]

linux 编译错误:undefined reference to `__gxx_personality_v0'

(1)编译 c++ 程序需要添加 -lstdc++ 如: gcc -lstdc++ -o test test.c 否则会报 "undefinedreference to '__gxx_personality_v0' " 错误 (2)用gcc命令编译C程序,用g++命令编译C++程序. g++和gcc本质一样的,本质上还是gcc,我们实验室所有的c++程序都是用gcc编译的,一般的程序用gcc足够了. 对于 C++ 程序,编译的时候用 gcc 或者 g++ 都可以.但是在进行连接的时候最

linux 编译中required file `./ltmain.sh' not found 错误的解决办法(转)

在linux下编译c/c++程序出错:$ automake --add-missing....configure.in:18: required file `build/ltmain.sh' not found .... -------------------------------------------------------- 解决方案(libtoolize配置即可): $libtoolize --version-libtoolize (GNU libtool) 1.4.2.....$li

linux编译内核步骤与错误解决

1.查看内核版本 实验环境 [[email protected] src]# uname -r 2.6.32-358.el6.x86_64 2.安装图形依赖包 yum install -y ncurses ncurses-devel 3.下载内核 [[email protected] src]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.2.tar.xz 解压 [[email protected] src]# tar

linux编译安装时常见错误解决办法

linux编译安装时常见错误解决办法 This article is post on https://coderwall.com/p/ggmpfa 原文链接:http://www.bkjia.com/PHPjc/1008013.html configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码 代码如下:yum -y install libxslt-devel c

Linux编译安装Apache+PHP

Linux编译安装Apache+PHP 来自:自学it网,http://www.zixue.it/. 1]编译安装Apache+PHP 1.安装程序依赖库和开发环境   为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装, yum -y install gcc gcc-c++ autoconf automake make libjpeg libjpeg-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-d

Linux编译安装Qt 5.4.1

转载请注明文章:Linux编译安装Qt 5.4.1 出处:多客博图 很久不写文章了,过程很简单,但是操作很多,简单说吧. 前言: 操作系统CentOS 6.6,64位的. 1.安装gcc 4.8.4,或者4.9.2,越高版本越好咯,编译安装到/usr/local/下面,这样无需设置可执行文件路径了,然后卸载自带的gcc等,卸载所有依赖,如果不行就--nodeps方式卸载: 2.安装gdb 7.8,有新的gcc 4.8.4这种就可以了,然后强行卸载系统自带的gdb, rpm -e gdb.xxx

Linux 编译时出现类似error: stray '\357' in program的解决方法

原因: 在程序中打入了全角字符 具体分析产生原因: 在编程中,由于打字的快速,按下ctrl键后紧接着按下了space键,由于按下两个键的间隙比较短,导致系统误检测到ctrl + space信号,将输入法从半角切换到全角. 解决方法: 只需将定位的错误行号对应的代码删掉重新输入即可. Linux 编译时出现类似error: stray '\357' in program的解决方法