我解压缩并编译了Ruby 2.1并安装了几个支持工具。
但是我安装libssl-dev时不会安装OpenSSL。
在制作openssl支持时出现此错误:
make: *** No rule to make target `/thread_native.h', needed by `ossl.o'. Stop.
怎么办?
答案 0 :(得分:3)
我遇到了同样的问题。事实证明,extconf.rb生成的Makefile的最后一行读取
ossl.o: $(top_srcdir)/thread_native.h $(top_srcdir)/thread_$(THREAD_MODEL).h
但是,top_srcdir
未在Makefile中的任何位置定义。
我通过运行
找出丢失的头文件的位置sudo find / -name thread_native.h
返回(大约)
~/.rbenv/versions/2.1.0/thread_native.h
顶部有一行说明
topdir = ~/.rbenv/versions/2.1.0/include/ruby-2.1.0
所以我在它下面添加了一行指向find
的目录:
top_srcdir = $(topdir)/../..
毕竟,我在make clean
目录中执行了ext/openssl
,然后make
在没有错误的情况下运行。
答案 1 :(得分:1)
你为什么不用rvm?它为您编译,配置,安装和管理所选版本的最流行的红宝石口译员。
无论如何,请尝试使用--with-openssl-dir
。