2013-04-03 33 views
18

Tôi muốn cài đặt một viên ngọc nhưng tôi nhận được lỗi sau:Làm cách nào để bật hỗ trợ tiện ích mở rộng C trong jRuby?

Building native extensions. This could take a while... 
ERROR: Error installing twitter-login: 
     ERROR: Failed to build gem native extension. 

     C:/nwcloud/jruby-1.7.2/bin/jruby.exe extconf.rb 
NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable. 

Tôi cũng đọc this question với cùng một vấn đề, nhưng tôi thậm chí không biết làm thế nào để cho phép sự hỗ trợ với ba lựa chọn vì tôi don 't biết làm thế nào để vượt qua -Xcext.enabled=true để JRuby hoặc thiết lập JRUBY_OPTS hoặc sửa đổi .jrubyrc để kích hoạt.

Ai có thể giúp tôi với vấn đề người mới bắt đầu của tôi không?

+0

Thử xem lại điều này: http://stackoverflow.com/questions/8283300/how-do-i-use-jruby-opts-with-rvm – fmendez

+0

Xin lỗi, nhưng tôi không hiểu làm thế nào tôi có thể thích ứng với vấn đề này. Và tôi không có .rvmrc trong thư mục dự án của tôi ..? – ada91

+1

Nó được thiết kế để bạn có thể đọc giữa các dòng của tất cả các giải pháp được cung cấp ở đó. Ví dụ, ví dụ này: 'export JRUBY_OPTS =" - 1.9 -J-XX: + CMSClassUnloadingEnabled -J-XX: + UseConcMarkSweepGC -J-XX: MaxPermSize = 256m -J-Xmx1024m "', cho bạn biết rằng JRUBY_OPTS là một ' biến môi trường và một cách để thiết lập nội dung của nó là như thế. Không phải tất cả các giải pháp đều có định dạng sao chép/dán tiện dụng. – fmendez

Trả lời

20

.jrubyrc chỉnh sửa mà được đề xuất bởi Rodrigo đã không làm việc cho tôi (jdk 7u25/JRuby 1.7.4), nhưng xuất khẩu JRUBY_OPTS đã làm các trick:

export JRUBY_OPTS="--1.9 -Xcext.enabled=true" 
+0

đã làm việc cho tôi. Cảm ơn! –

+1

trong cửa sổ hoạt động tốt với: đặt JRUBY_OPTS = "- 1.9 -Xcext.enabled = true" –

8

Đảm bảo bạn đang sử dụng openjdk mới nhất (cập nhật 7 21, tại thời điểm viết bài này) và JRuby mới nhất (1.7.4).

Tạo tệp có tên .jrubyrc trong thư mục chính của người dùng của bạn.

thêm nội dung sau;

cext.enabled=true 

làm

+0

chúng ta có thể làm cho nó thiết lập dự án cụ thể hơn là máy cụ thể thiết lập? – Pravin