我正在尝试为使用struct的C代码编写Python包。
modules.c:
struct foo
{
int a;
};
struct foo bar;
modulues.i
%module nepal
%{
struct foo
{
int a;
}
%}
extern struct foo bar;
但在编译期间,我收到错误:
在函数'Swig_var_bar_set'中: 错误:'bar'未声明(首次使用此功能)
你能帮助我如何正确定义导出结构变量吗?
答案 0 :(得分:2)
试试这个:
%module nepal
%{
struct foo
{
int a;
};
extern struct foo bar;
%}
struct foo
{
int a;
};
extern struct foo bar;
%{%}中的代码插入到包装器中,并解析它下面的代码以创建包装器。将这一切放在头文件中更容易,因此它不是那么重复:
<强> modules.h 强>
struct foo
{
int a;
};
extern struct foo bar;
<强> modules.c 强>
#include "modules.h"
struct foo bar;
<强> modules.i 强>
%module nepal
%{
#include "modules.h"
%}
%include "modules.h"