タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

rubyとswigに関するcoekのブックマーク (3)

  • SWIG を使ってみよう! [第3回] Ruby 編: ナマズのブログ

    SWIG を使って libnmz の様々な言語用のバインディングを作成してみましょう。 今回は UNIX 環境(Linux)で Ruby から libnmz の nmz_get_version を呼び出すことを考えます。 モジュール名は前回と同じ Sample とします。 SWIG 用インターフェイスファイルを Sample.i という名前で作成します。 中身は前回と全く同じです。 %module Sample %{ #include "namazu/libnamazu.h" %} char *nmz_get_version(); swig コマンドを使ってラッパ用コードを生成します。 今回は Ruby 用ですので引数に -ruby を指定します。 $ swig -ruby Sample.i 実行すると Ruby 用の Sample_wrap.c が生成されます。 Makefile を作成

  • RubyからC++のクラスを使用する - 個人的な技術メモ

    RubyからC++のクラスを呼び出す例をまとめる。環境は以下の通り。 Fedora7 g++ 4.1.2 SWIG 1.3.31 Ruby 1.8.6 ANTLR(2.7.7)で生成されたC++によるパーサプログラムを、Rubyから呼び出すために調べたものをまとめてみた。ANTLRも3.0からはRubyも対象言語に含まれているので、わざわざC++のクラスを呼び出すこともなくなるだろう。 クラス定義 まず、C++のクラス定義から。 クラスExmapleのヘッダファイルと定義ファイルを用意する。 Exaple.hpp // Example.hpp #ifndef __Example_hpp #define __Example_hpp class Example { public: Example(void); ~Example(void); char* toUpper(char* str);

    RubyからC++のクラスを使用する - 個人的な技術メモ
  • Ruby Programing with SWIG

    はじめに Rubyと同じく、C++もクラスをもっています。 SwigをつかえばC++のクラスをそのままRubyのクラスにすることができます。 SwigのドキュメントにC++の章がありますので、 まずはそちら "5 SWIGとC++" を読みましょう。 C++で書かれたあるソフトをswigを利用してラップする場合、 インストールされるヘッダーファイルがたいへん役に立ちます。 運が良ければそのヘッダーファイルがそのまま使えますが、 多くの場合多少変更が必要となります。 ここでは、 C++で書かれたソフトをラップする際に必要ないくつかの変更の解説を行います。 まずはヘッダーファイルをそのまま使ってみよう とりあえずヘッダーファイルをそのまま使ってみましょう。 そのままで問題なくコンパイルでき、かつ使えたあなたは幸運です。 だめな場合でもエラーメッセージがとても重要な情報となります。 以下のように

  • 1