【发布时间】:2016-12-22 09:59:12
【问题描述】:
我有这个测试代码:
require 'mkmf'
puts have_header("iostream.h")
此代码在 Jruby 中引发如下错误:
检查 iostream.h... RuntimeError: 编译器未能生成可执行文件。您必须先安装开发工具。
try_do 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:456 try_cpp 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:587
在 have_header 中阻止 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:1091
在检查_for 中阻止 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:942 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:350 阻止延迟 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:320 打开 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:350 阻止延迟 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:320 打开 推迟到 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:346 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:941 检查_for 在 /home/abd/.rvm/rubies/jruby-9.1.6.0/lib/ruby/stdlib/mkmf.rb:1090 有头文件 在 test.rb:3
我不知道开发工具是什么意思,我搜索了互联网却没有找到任何相关信息。
我通过rvm安装了Jruby 9.1.6.0,这是我的java版本:
[abd@abd testruby]$ java -version
openjdk version "1.8.0_112"
OpenJDK Runtime Environment (build 1.8.0_112-b15)
OpenJDK 64-Bit Server VM (build 25.112-b15, mixed mode)
我在这里使用 Arch linux。
我的问题背后的真正原因是我尝试安装 gmp gem 并且由于相同的错误而无法构建本机扩展,我知道 gem 未维护但我还是想解决这个问题,因为上面的消息表明我的安装不足。
顺便说一句,我有 jdk,而不仅仅是 jre。
【问题讨论】: