ruby-c-extension

    4熱度

    2回答

    我試圖讓在C紅寶石獨立FFT擴展,基於this recipe 我已經注意到通過紅寶石和C之間的不同值的幾種方法。然而,即時通訊相當新的紅寶石和C,並不能解決如何將數組從一個VALUE ruby​​對象複製到C數組。 的編譯錯誤: SimpleFFT.c:47:錯誤:下標值既不是數組,也不指針 ,代碼: #include "ruby.h" #include "fft.c" // the c fil

    1熱度

    1回答

    在my Ruby extension中,代碼被組織到目錄中,其中extconf.rb位於主庫文件中樹的根部。 這個設置的問題是目錄內的所有文件都沒有被鏈接到我的庫。 mkmf似乎沒有考慮到他們。 如何手動將它們添加爲mkmf中的鏈接目標? 更好的問題是:是否有更靈活的Ruby構建系統,我可以使用?

    5熱度

    1回答

    我在寫一個C擴展,提供了Ruby和異步I/O庫之間的接口。當運行在我的代碼測試,我經常得到包括錯誤(但不限於): [BUG] cross-thread violation in rb_thread_schedule() 異步IO意味着我的C擴展需要傳遞的消息從多個線程(不是主要的解釋線程)與紅寶石。在這個過程中,我如何避免這些線程安全違規?

    1熱度

    2回答

    要前言:我是很新的C,所以我可能失去了一些東西很明顯,但已爲天試圖弄清楚它是什麼跑來跑去...... 我正在嘗試創建一個可在Mac和PC上運行並使用libcurl下載文件的Ruby C擴展。 基本上,所有的工具都是從Ruby獲取文件列表,下載文件並將它們放到Ruby告訴它們的地方。 我有擴展工作在Ruby內部,並已編譯C擴展與Ruby接口。 基本上我的代碼如下所示: #include <strin

    2熱度

    3回答

    如果我有用Ruby編寫的Foo :: Bar,並且我想將一個方法添加到Bar作爲C擴展。現在,當我在C上創建富::酒吧這樣的: static VALUE Foo; static VALUE Bar; static VALUE print_string(VALUE self, VALUE string) { printf("%s", StringValuePtr(string));

    2熱度

    2回答

    我得到這個錯誤 ev.c:11: error: subscripted value is neither array nor pointer 此行 printf("%d\n", pairs[0][0]); 在這段代碼 static VALUE EV; static VALUE PairCounter; static VALUE sort_pairs_2(VALUE self) {

    4熱度

    2回答

    這種方法只是驗證我能夠正確地看到紅寶石數組的元素。 static VALUE print_cards(self) VALUE self; { VALUE cards; int i; cards = rb_ivar_get(self, rb_intern("@cards")); VALUE *ary_ptr = RARRAY_PTR(cards

    1熱度

    1回答

    我只想讓C擴展類的一個實例生成,所以我想包含單例模塊。 void Init_mousetest() { VALUE mouseclass = rb_define_class("MyMouse",rb_cObject); rb_require("singleton"); VALUE singletonmodule = rb_const_get(rb_cObject,rb

    0熱度

    2回答

    我不斷收到這個相當模糊的鏈接錯誤,每當我試圖鏈接my Ruby extension: /usr/bin/ld: Mg.o: relocation R_X86_64_PC32 against undefined symbol `init_window_class_under' can not be used when making a shared object; recompile with -f

    2熱度

    1回答

    我正在爲Ruby模塊構建一個簡單的C擴展,當我在擴展中調用另一個C函數時,遇到了段錯誤。執行的基本流程是這樣的: 我創建Ruby類,並調用它的一個實例方法,它 調用C方法在我的擴展,它 調用另一個C函數,在一個單獨的文件,但編譯好吧 這是最後一次跳躍似乎打破。我已經能夠重現幾乎沒有功能的問題,但函數調用。我有一個標準的extconf.rb,用make編譯這個東西,並且它在encrypt()的調用中