我有一个包含typedef结构定义的C头文件,以及一个带有typedef的char定义数组:
/* File: test.h */
typedef struct
{
char *key;
void *value;
int size;
} cti_pair;
typedef char FOO[CONST];
SWIG接口文件包含以下行:
/* File: test.i */
%module test
%{
#define SWIG_FILE_WITH_INIT
#include "/home/users/jdoe/workspace/project/src/lib-cti/test.h"
...
%}
#ifndef CTI_TYPES_H_
#define CTI_TYPES_H_
#include "cti_const.h"
typedef char FOO[CONST];
typedef struct
{
char *key;
void *value;
int size;
} cti_pair;
问题是我可以访问cti_pair结构,但不能在我的python脚本中使用FOO(它没有定义)。
答案 0 :(得分:0)
好的,只要找出问题所在。 实际上,我在接口文件的另一部分使用了%extend。但是这个关键字只能在结构上使用,而不能在基本的typedef上使用(如果我们使用%扩展错误的方式,SWIG不会显示任何错误信息)。
事实上,FOO已定义。问题与此无关。谢谢!