問題タブ [ruby-c-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
429 参照

c - グラフ用 C ライブラリ

グラフ理論操作に適した C ライブラリはありますか? 特に、有向グラフの強連結成分を計算する必要があります。次のように、Ruby でTarjan のアルゴリズムを実装しました。

小さなグラフで動作していましたが、グラフが大きくなるにつれて、メソッドの再帰呼び出しにより「スタックレベルが深すぎます」というエラーが返され始めましたstrong_connect。C ライブラリが必要で、メイン プログラムが記述されている Ruby からアクセスする必要があると思います。

ライブラリに加えて、それを Ruby ライブラリで使用するための提案があれば助けになります。

0 投票する
1 に答える
88 参照

ruby - OS X に組み込まれた Ruby 拡張機能は Linux で動作しますか?

CentOS サーバーで実行される C (C++ ライブラリを使用) プログラム用の Ruby 拡張機能を作成したいのですが、Mac で作業する方が便利です (特に、すべてのサードパーティ ライブラリを再インストールする必要がありません)。

どちらも UNIX ベースであるため、OS X でライブラリを作成すると、CentOS に配置すると破棄されますか?それとも、手動で CentOS をインストールし、そこですべてを実行する必要がありますか?

ありがとう!

0 投票する
2 に答える
2767 参照

c++ - g++ での望ましくない警告メッセージ

Ruby 用の C++ 拡張機能を作成しようとしています。メインファイルに加えて、ファイルがありますextconf.rb

を実行した後、 と入力ruby extconf.rbしてコンパイルしようとすると、次の警告が表示されます。g++make

有害ではないと読みましたが、この警告を回避する方法はありますか? ここに同じ問題を抱えている人がいますが、解決策が見つかりません。

0 投票する
1 に答える
936 参照

c++ - RubyC++拡張機能のコンパイル

Ruby用のc++拡張機能をコンパイルしようとしていますが、コンパイルでエラーが返されませんが、正しくコンパイルされていないようです。私は何が間違っているのですか?

私はメインのcppスクリプトfoo.cppを持っています:

およびextconf.rb

そして、これらのファイルのディレクトリ内で、私はしました

次に、Rubyスクリプトtest.rbがあります。

そして私は実行しtest.rbます。エラーを返します:

私は何が間違っているのですか?

環境

  • OS:Ubuntu Linux 11.10
  • Ruby:1.9.3
0 投票する
1 に答える
2099 参照

c++ - Ruby配列から取り出した文字列をC/C++文字列に変換する方法

Ruby用のC++拡張機能を作成していて、Ruby配列オブジェクトからRuby文字列オブジェクトを抽出し、それをC /C++文字列オブジェクトに変換しようとしています。

私はfoo.cppを持っています:

およびtest.rb

コンパイルしようとするfoo.cppと、コンパイラは「単一の用語とオペランドには左側の値が必要です」などのエラーを返します(正確なメッセージではありません。別の自然な言語で表示されるエラーメッセージから変換されます)。それは私の使用法に関するものですStringValuePtr。私は何を間違っているのですか、そしてそれをどのように修正できますか?

0 投票する
1 に答える
877 参照

c++ - C++ std::string から Ruby VALUE へ

std::stringC++オブジェクトを Rubyオブジェクトに変換するにはどうすればよいVALUEですか?

試してみrb_str_new2(c_string)ましたが、うまくいきませんでした。

私には機能があります

エラーメッセージが表示されます:

0 投票する
1 に答える
1140 参照

ruby - システムコール用のRubyCバインディングとRubyラッパー

システムコール用のRubyCバインディングとRubyラッパーの実行の主な違いは何ですか?

私の質問を文脈に当てはめると、Gitバージョン管理機能をRubyonRailsアプリケーションに大幅に組み込むことを検討しています。このタスクに取り組む際に、 yajl-rubyなどのRubyCバインディングで実装されたライブラリとgitRubyGemなどのシステムコール用のRubyラッパーを組み込んだRubyプログラムの実行パイプラインについて考える方法がわかりません。

0 投票する
1 に答える
157 参照

c - Ruby C API `定義? SomeConstant` に相当しますか?

次のif条件を変換しようとしています:

ネイティブ C 拡張の一部に。defined?C API で述語チェックを行う方法を知っている人はいますか?

編集 | 私は呼び出すことができると思います:

これは明らかにわずかに異なりますが、意味的には異なります。

0 投票する
1 に答える
288 参照

c - Ruby C拡張でrb_関数をどのように上書きしますか?

c で rb_ 関数 (rb_ivar_get など) をオーバーライドする方法がわかりません。次のコードがあります。

そして、次のテスト:

その出力は次のとおりです。

私の考えでは、Ruby リンカが rb_ivar_get、rb_attr_get、および rb_ivar_set の私の定義を、variables.c にあるその定義で覆い隠しているようです。私は正しいですか?もしそうなら、どうすれば私のメソッドがルビーのものであり、その逆ではないことを変更できますか。

0 投票する
3 に答える
174 参照

ruby-on-rails - Rails 3.2 を拡張する最良の方法

カスタム コントローラー、モデル、一連のビュー、ヘルパー、および作業に関係する Rails アプリに十分な特定の量のユーザー管理機能をカプセル化するその他のものがあります。

私が望むのは、新しい Rails アプリにすべてのカスタムをすばやく追加できるように、ある種の拡張機能を作成することです。私は Ruby on Rails にはまったく慣れていませんが、Rails を拡張するには、gem、プラグインの生成、Railtie の 3 つの方法があることを知っています。質問は - 私の状況で最善の方法は何ですか?