用SWIG包装C结构
我有包含以下类型定义的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
自从我使用Swig以来已经有一段时间了,但我记得%inline用于直接将内联部分传递给编译器; Swig本身看不到它,我认为你需要的是:
%module example %include