【问题标题】:jRuby, gems with C extensionsjRuby,带有 C 扩展的 gem
【发布时间】:2012-08-02 19:01:57
【问题描述】:

有人在使用 jRuby 时遇到同样的错误吗?当我尝试使用 C 扩展安装 gem 时,出现下一个错误:

gem install serialport 构建原生扩展。这可能需要一个 同时... 错误:安装串行端口时出错:错误:构建失败 gem 原生扩展。

    /home/username/.rvm/rubies/jruby-head/bin/jruby extconf.rb NotImplementedError: C > extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable.

(根)在 /home/username/.rvm/rubies/jruby-head/lib/ruby/shared/mkmf.rb:8
需要在 org/jruby/RubyKernel.java:1021 (root) 处 /home/username/.rvm/rubies/jruby-head/lib/ruby/shared/rubygems/custom_require.rb:1 (根)在 extconf.rb:1

错误解释中声明的任何参数都不会成功...

安装的 jruby 版本信息: jruby 1.7.0.preview2.dev (1.9.3p203) 2012-08-05 22cd6f9 on Java HotSpot(TM) Server VM 1.7.0_05-b05 [linux-i386]

平台:Linux

宝石:串口

【问题讨论】:

  • 它说:“将 -Xcext.enabled=true 传递给 JRuby 或设置 JRUBY_OPTS 或修改 .jrubyrc 以启用”。你这样做了吗?
  • 你都试过了吗?
  • 你能写一个安装“serialport” gem的例子吗?
  • 对 JRuby 的 C 扩展支持存在缺陷且已弃用。你不可能通过 C 扩展得到你想要的东西。最好的选择是找到一个可以满足您需求的 Java 库。

标签: ruby rubygems jruby


【解决方案1】:

正如 echristopherson 所说,对 JRuby 的 C 扩展支持已被弃用。在大多数 gems 中,您应该在 RubyGems 中找到 Java 特定版本,或者在 Github 中找到一个健康的替代方案。我不建议你尝试破解 gem 来与 jruby 一起工作,因为这将是一个痛苦的世界......

【讨论】:

    【解决方案2】:

    您尝试过 rs232 gem 吗?它可能有 jruby 支持,因为它所依赖的 ffi gem 有 jruby 支持。 https://rubygems.org/gems/rs232

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多