【问题标题】:Using typedef with SWIG将 typedef 与 SWIG 一起使用
【发布时间】:2012-11-16 09:06:35
【问题描述】:

我有一个 C 头文件,其中包含带有 typedef 的结构定义,以及一个带有 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(它没有定义)。

【问题讨论】:

    标签: python c swig


    【解决方案1】:

    好的,只要找出问题所在。 实际上,我在接口文件的另一部分使用了 %extend 。但是这个关键字只能用在结构上,不能用在基本的 typedef 上(如果我们以错误的方式使用 %extend,SWIG 不会显示任何错误消息)。

    事实上,FOO 是被定义的。问题根本与此无关。谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      相关资源
      最近更新 更多