2024-04-25 09:34:23 发布
网友
我正在尝试使用SWIG为我不控制其源代码的库生成python接口模块。出于某种原因,图书馆有这样一行:
#define VOID void
这导致了SWIG的各种问题;似乎认为VOID是这些函数将返回的实际对象。你知道吗
我能告诉SWIG VOID的意思是void吗?你知道吗
VOID
void
等一下。。。如果您没有库的源代码,我假设您的意思是#define VOID void发生在要使用此库的头文件(.H)中。如果库已经编译,那么#define VOID void不会影响它,只与那些头相关。#define指令只影响编译代码的预处理器(库已经生成)。因此,如果只有那些头使用VOID,那么确保在这些头中,在顶部有一个#define VOID void,在底部有一个#undef VOID来删除VOID宏。你知道吗
#define
#undef VOID
当我创建SWIG接口文件时,我逐字复制了函数prototype、VOID和all。如果我将接口文件中的所有原型从使用VOID更改为使用void,问题就消失了。你知道吗
看来SWIG确实尊重预处理器,只是不尊重它自己的接口文件,这是可以理解的。你知道吗
把这个贴在这里给未来的搜索者。。。你知道吗
等一下。。。如果您没有库的源代码,我假设您的意思是
#define VOID void
发生在要使用此库的头文件(.H)中。如果库已经编译,那么#define VOID void
不会影响它,只与那些头相关。#define
指令只影响编译代码的预处理器(库已经生成)。因此,如果只有那些头使用VOID,那么确保在这些头中,在顶部有一个#define VOID void
,在底部有一个#undef VOID
来删除VOID宏。你知道吗当我创建SWIG接口文件时,我逐字复制了函数prototype、
VOID
和all。如果我将接口文件中的所有原型从使用VOID
更改为使用void
,问题就消失了。你知道吗看来SWIG确实尊重预处理器,只是不尊重它自己的接口文件,这是可以理解的。你知道吗
把这个贴在这里给未来的搜索者。。。你知道吗
相关问题 更多 >
编程相关推荐