我可以为swig库定义void吗?

2024-04-25 09:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用SWIG为我不控制其源代码的库生成python接口模块。出于某种原因,图书馆有这样一行:

#define VOID void

这导致了SWIG的各种问题;似乎认为VOID是这些函数将返回的实际对象。你知道吗

我能告诉SWIG VOID的意思是void吗?你知道吗


Tags: 模块对象函数图书馆源代码swigvoiddefine
2条回答

等一下。。。如果您没有库的源代码,我假设您的意思是#define VOID void发生在要使用此库的头文件(.H)中。如果库已经编译,那么#define VOID void不会影响它,只与那些头相关。#define指令只影响编译代码的预处理器(库已经生成)。因此,如果只有那些头使用VOID,那么确保在这些头中,在顶部有一个#define VOID void,在底部有一个#undef VOID来删除VOID宏。你知道吗

当我创建SWIG接口文件时,我逐字复制了函数prototype、VOID和all。如果我将接口文件中的所有原型从使用VOID更改为使用void,问题就消失了。你知道吗

看来SWIG确实尊重预处理器,只是不尊重它自己的接口文件,这是可以理解的。你知道吗

把这个贴在这里给未来的搜索者。。。你知道吗

相关问题 更多 >