用 SWIG 包装 C 结构
Posted
技术标签:
【中文标题】用 SWIG 包装 C 结构【英文标题】:Wrapping C structs with SWIG 【发布时间】:2009-11-09 12:31:45 【问题描述】:我有包含以下类型定义的 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
【问题讨论】:
【参考方案1】:我使用 Swig 已经有一段时间了,但我记得 %inline 用于将内联部分直接传递给编译器; Swig 本身并没有看到,我认为你需要的是:
%module example
%include<example.h>
【讨论】:
以上是关于用 SWIG 包装 C 结构的主要内容,如果未能解决你的问题,请参考以下文章
SWIG Python - 包装一个需要指向结构的双指针的函数