答えて
あなたは3つの可能性があります:
1)Rubyはライブラリを読み込むことができます。ちょっとしたことがあっても、独自のローダーを作成してC++ライブラリをRubyにバインドすることができます。 これは、拡張モジュールと呼ばれるものを使用して行われます。 http://www.rubyinside.com/how-to-create-a-ruby-extension-in-c-in-under-5-minutes-100.html
2)あなたのC++ライブラリの周りにRubyラッパーを生成するツールを使用してください。たとえばSWIG(http://www.swig.org/)を見てください。 swig固有の構文でファイルを作成し、それをSWIGに提供するだけです。 Rubyに含まれる多くの言語のラッパーを生成することができます。
3)は、CORBA/ICE /などのミドルウェアを使用することができます。いくつかのC++関数を呼び出すだけの場合、少し余計になるかもしれませんが、関数をリモート呼び出しするか、ミドルウェアの背後にあるグリッドを「隠す」ことができます。
私は質問者がRubyでC++を呼び出す方法を尋ねていると思います。もしそうなら、単純なC/C++ RubyInline 1ははるかに簡単な解決策です。
さらにsubstatntial C++コードを呼び出す必要がある場合は、ルビ拡張をビルドすることができます。ここでは、CインタフェースであなたのC++コードをラップしてから(rb_define_methodを使用する方法をルビーするために、これらのC関数をバインドする必要がありgood tutorial
)
はオーレリアンが言ったように、代わりあなたは、SWIGを使用することができます。
RubyからC++コードを呼び出すには、拡張機能をビルドする必要があります。
あなたが経験豊富なC++開発者であれば、あなたはライスと快適に感じることがあります。
https://github.com/jasonroelofs/rice
これは、書き込みの拡張機能を簡素化するためにC++メタプログラミング技術を使用しています。
C言語を使用している場合は、ffiを使用することもできます。 C++コードの呼び出しは、名前のマングリングや例外のためにCコードを呼び出すよりも少し複雑です。
ご飯は窓に対応していると思いますか? – Itzik984
私はもともとRice on Windows(mingwとcygwinでテスト済みで、私が回避しなければならなかった興味深いautotoolsのバグに遭遇しました)を書きました。私はもはやそれを維持していないので、最新のバージョンがWindows上で十分にテストされているかどうかはわかりませんが、動作しない理由はありません。 私は最近、IPC(tcp、zeromq、unix socketなど)を使って、C++とインターフェースしています。私がC++ライブラリコードを直接呼び出す必要があったなら、おそらくClingを試してみよう。 –
回答ありがとうございます:) – Itzik984
- 1. Ruby on railからplpgsql関数を呼び出す方法は?
- 2. Ruby on Railsレイアウトからjavascript関数を呼び出す方法
- 3. このDLL関数をC++/Cから呼び出す方法
- 4. CからC++関数を呼び出す方法#
- 5. JavaのC#DLLから関数を呼び出す方法は?
- 6. javascript関数の中からReactコンポーネント関数を呼び出す方法は?
- 7. ADO/C++からMSSQLシステム関数を呼び出す方法は?
- 8. javascriptからC#関数を呼び出す方法は?
- 9. LuaスクリプトからC#関数を呼び出す方法は?
- 10. gdb-pythonメソッド内からC関数を呼び出す方法
- 11. VB6 EXE関数をC#から呼び出す方法
- 12. VBからC++ DLL関数を呼び出す方法は?
- 13. .csファイルからJavaScript/jQuery関数を呼び出す方法C#
- 14. C#wpfからjs関数を呼び出す方法
- 15. CからClojure関数を呼び出す方法は?
- 16. JavaからC#関数を呼び出す方法
- 17. C#からAllocateAndInitializeSid関数を呼び出す方法は?
- 18. cからJava関数を呼び出す方法
- 19. JavaScriptからObjective-c関数を呼び出す方法は?
- 20. C++からMatlab関数を呼び出す方法
- 21. C#アプリケーションからjquery関数を呼び出す方法は?
- 22. ワークフロー内の関数から関数を呼び出す方法
- 23. 関数をSQLの関数から呼び出す方法
- 24. 他の関数内から関数を呼び出す方法
- 25. javacriptメンバー関数の中からメンバ関数を呼び出す
- 26. CUDA:グローバル関数からホスト関数を呼び出す方法
- 27. jquery関数からphp関数を呼び出す方法
- 28. JNAからC関数呼び出し
- 29. 変数の中で関数を呼び出す方法は?
- 30. 目的関数CでJavaScript関数を呼び出す方法
質問はC++についてですので、1.は関係ありません。 – Magpie