2012-06-05 70 views
2

我將ruby版本從ruby 1.9.3-p125更改爲JRuby 1.7.0-preview1與ruby-build。當我在我的項目執行jruby -S bundle install,存在一些誤區如下,無法使用JRuby構建gem原生擴展

... 
Using bson (1.6.2) 
Installing bson_ext (1.6.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /Users/joshchang/.rbenv/versions/jruby-1.7.0-preview1/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. 

    (root) at /Users/joshchang/.rbenv/versions/jruby-1.7.0-preview1/lib/ruby/shared/mkmf.rb:8 
    require at org/jruby/RubyKernel.java:991 
    (root) at /Users/joshchang/.rbenv/versions/jruby-1.7.0-preview1/lib/ruby/shared/rubygems/custom_require.rb:1 
    (root) at extconf.rb:1 
... 

有什麼建議嗎?謝謝。

回答

0

剛剛閱讀錯誤消息並嘗試如下所示:jruby -Xcext.enabled=true -S bundle install 儘管它可能不起作用 - 通常JRuby上不支持C擴展。

+0

我做了,但沒有工作。 – chiayi

+1

你確實需要檢查你的bundle依賴關係,找出爲什麼使用** bson_ext ** gem(''gem'bson''應該可以在JRuby上正常工作)並禁用它或聲明它是平臺依賴的,例如, 'gem'bson_ext',:platform =>:ruby'。但是,如果你向我們展示了你的Gemfile,我們可以解決這個問題,這都是猜測。 – kares

3

JRUBY_OPTS="-Xcext.enabled=true" gem install <your gem>應該工作!

相關問題