gpt4 book ai didi

python - 将 typedef 与 SWIG 结合使用

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:27 26 4
gpt4 key购买 nike

我有一个 C 头文件,其中包含带有 typedef 的结构定义,以及一个带有 typedef 的 char 定义数组:

/* File: test.h */

typedef struct
{
char *key;
void *value;
int size;
} cti_pair;

typedef char FOO[CONST];

SWIG 接口(interface)文件包含以下几行:

/* 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(它未定义)。

最佳答案

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

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

关于python - 将 typedef 与 SWIG 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com