【发布时间】:2021-06-14 17:32:35
【问题描述】:
我想将我的 C++ 库类公开给 python,并能够在 python 中调用该类中包含的任何函数。 我的示例库如下所示:
#include "example_lib.h"
lib::lib(){};
int lib::test(int i){
return i;
}
带有标题:
class lib{
lib();
int test(int i);
};
我的接口文件:
/* example_lib.i */
%module example_lib
%{
/* Put header files here or function declarations like below */
#include "example_lib.h"
%}
%include "example_lib.h"
我运行以下命令:
swig3.0 -c++ -python example_lib.i
g++ -c -fPIC example_lib.cc example_lib_wrap.cxx -I/usr/include/python3.8
g++ -shared -fPIC example_lib.o example_lib_wrap.o -o _example_lib.so
但是当我尝试调用成员函数时
example_lib.lib.test(1),
我只得到类型对象'lib'没有属性'test'。如何让 swig 也暴露成员函数?
这似乎是一个非常基本的问题,但如果有人能澄清它通常是如何完成的,我将非常感激。
【问题讨论】: