20

Ruby をスクリプト言語として C++ に埋め込む最良の方法は何ですか? ruby.h を使用していますか? スイグ?他の何か?必要なのは、いくつかの C++ オブジェクトを Ruby に公開し、これらのオブジェクトにアクセスするスクリプトを Ruby インタープリターに評価させることです。Ruby を拡張したり、C++ でアクセスしたりすることは気にしません。

C++ への Ruby の埋め込みに関するこの記事を見つけました。これは非常に便利ですが、ちょっと古いので、この件に関する他のリソース (または同様のエンジンのオープン ソース実装) があるかどうか疑問に思っていました。

4

5 に答える 5

11

は非常に有望に見えます。

于 2008-10-27T16:01:45.827 に答える
6

Ruby は非常に役立つ README.EXT ファイルを提供しています。Ruby を拡張する方法、および C と Ruby の型を変換する方法に関する多くの情報が含まれています。

つるはしの本からのこの抜粋もあり、ほとんど同じことをカバーしています.

私の場合、Ruby スクリプトをアプリケーションに追加したとき、swig を使用しないことに決めました。私のニーズは非常に単純であり、ビルドの依存関係をさらに追加したくないからです。

于 2009-02-21T20:12:13.800 に答える
5

swigはおそらく行くべき道です.....しかし、ルビーはあまりうまく埋め込まれません...

C++ にうまく組み込まれる言語が必要な場合は、lua を試してください。

于 2008-10-27T08:49:22.923 に答える
2

tinyrbをチェックしてみてください。

于 2009-02-21T21:15:34.617 に答える
1

私は Rarity ( https://github.com/Plaristote/Rarity ) に取り組んできました。これは次の 2 つのことを行います。

  • C++ API の YML 記述から Ruby バインディングを生成します
  • ほとんどの C++ の方法で Ruby スクリプトとやり取りできます。

私は多くの問題 (例外処理、ガベージ コレクション) を解決しました... Rarity がバインディングを実現するために使用するコード生成を他に見たことがありません。また、C++ と Ruby の型をこれほど簡単に変換できるライブラリは他に見たことがありません。

Rarity は一見の価値があると思います。また、フィードバックをいただければ幸いです :) !

于 2014-08-20T16:35:09.343 に答える