1

次の型定義を含む C ヘッダー ファイルがあります。

// example.h
typedef struct Vertex {
  int color;
} Vertex;

この構造体を SWIG でラップしようとしましたが、どうやら間違っているようです。私のSWIGインターフェースファイルは次のようになります

// example.i
%module example
%inline %{
#include "example.h"
}

しかし、ヘッダー ファイルの内容をインターフェイス ファイルにコピーすると、後者は次のようになります。

%module example

%inline %{
typedef struct Vertex {
  int color;
} Vertex;
%}

次の方法でRubyから構造体にアクセスできます

irb> require 'example'
# => true
irb> Examlpe::Vertex
# => Vertex

ヘッダー ファイルを自動的にラップする方法はありますか? ヘッダー ファイルの内容を変更するたびにインターフェイス ファイルにコピー アンド ペーストしたくありません。

よろしくお願いします。

-- t6d

4

1 に答える 1

3

Swig を使用してからしばらく経ちましたが、思い出すと、%inline はインライン部分を直接コンパイラに渡すために使用されます。Swig 自体はそれを認識しません。必要なものは次のとおりです。

%module example
%include<example.h>
于 2009-11-09T13:29:41.303 に答える