我们说我有以下课程:
class bar
{
public:
bar();
void helloworld(int date)
{ std::cout << "Hello world, the date is: " << date << std::endl; }
};
我需要在接口文件中做些什么来公开内联的helloworld()方法?我查看了%内联,但它似乎没有做我正在寻找的东西,这是一种可以调用的方法。
任何帮助将不胜感激
答案 0 :(得分:0)
你可以这样做:
/* bar_module.i */
%module bar_module
%{
#include "bar.h"
%}
%include "bar.h"
/* bar.h */
#include <iostream>
class bar
{
public:
bar();
void helloworld(int date)
{ std::cout << "Hello world, the date is: " << date << std::endl; }
};
/* bar.cc */
#include "bar.h"
bar::bar() {}
# test.py
import bar_module
bar_module.bar().helloworld(47)
# Build commands
swig -o bar_module_wrap.cc -python -c++ bar_module.i
g++ -o bar_module_wrap.os -c -fPIC -I/usr/include/python2.7 bar_module_wrap.cc
g++ -o bar.os -c -fPIC -I/usr/include/python2.7 bar.cc
g++ -o _bar_module.so -shared bar_module_wrap.os bar.os
# Test command
python test.py
# Output
Hello world, the date is: 47