我有一个C头文件,里面有很多寄存器的定义,在Python SWIG接口中我只想公开一些。我的C头文件看起来像这样(只是有更多的定义):
#define REG_1 0x0001
#define REG_2 0x0002
#define REG_3 0x0003
比如说,在我生成的Python模块中,如果我想让所有的定义都可以访问,我可以这样做:
%module myheader
%{
#include myheader.h
%}
%include myheader.h
但是如果我只想让REG_1可访问/ Package 呢?我尝试了类似这样的方法:
%module myheader
%{
#include myheader.h
%}
%constant REG_1;
但是没有用。查了文档,还是毫无头绪。有什么想法吗?
2条答案
按热度按时间uqdfh47h1#
我所知道的唯一方法是重复并准确地声明你想揭露的内容:
3pvhb19x2#
您可以使用SWIG的高级重命名支持来实现这一点。
给定演示头文件(defs.h):
一个界面写得像这样:
将只 Package 以'WRAP_ME'开头的内容(通过正则表达式)。
同样地:
将 Package 所有以'IGNORE_ME'开头的项目以外的项目。
在链接的文档中,您可以使用一些类似的方法,但这是模式匹配选择性 Package 的一般要点。