http://docs.python.org/extending/building.html
http://docs.python.org/extending/extending.html
int fact(int n) {
return n*n;
}
PyObject *warp_fact(PyObject* self, PyObject *args) {
int n,result;
if (!PyArg_ParseTuple(args, "i:fact", &n)) {
return NULL;
}
result = fact(n);
return Py_BuildValue("i", result);
}
static PyMethodDef exampleMethods[] = {
{"fact", warp_fact, 1},
{NULL, NULL},
};
extern "C"
void initaa() {
PyObject* m;
m = Py_InitModule("aa", exampleMethods);}
makefile:
cc:=g++-4.6
cflags:= -I/usr/include/python2.7
cflags+= -fPIC -lpthread -lm -ldl -lutil /usr/lib/python2.7/config/libpython2.7.a
aa: aa.cpp
$(cc) $(cflags) -shared -o $@ $<

本文介绍如何将C++函数封装为Python模块,并通过Python调用C++函数实现特定功能。包括模块创建、函数定义、参数解析、返回值处理及模块初始化过程。

被折叠的 条评论
为什么被折叠?



