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