不同版本python 调用 C++ 接口

这篇博客记录了在Ubuntu操作系统中,如何使用Python2.x和Python3.x调用C++编写的动态库。详细介绍了C++代码编译为动态库的步骤以及在Python中导入并使用这些库的方法。
摘要由CSDN通过智能技术生成

最近ubantu上做python项目用到了C++接口,觉着有点意思,特记录一下。

这里将会介绍python2.x 和 python 3.x 调用C++接口的方法:

话不多说,

1、python2.x

 C++ 文件名 test.cpp

#include <Python.h>

static PyObject * Add(PyObject * self, PyObject * args)
{
    int x, y;
    if(!PyArg_ParseTuple(args, "ii", &x, &y)) return NULL;
    int out = x + y;
    return Py_BuildValue("i", out);
}

static PyMethodDef testMethods[] = {
    {"Add", Add, METH_VARARGS, "add function"}
    {NULL, NULL, 0, NULL}   /* Sentinel */
}

extern "C"
void inittest(){
    Py_InitModule("test", testMethods);
}

ubantu编译成动态库命令

g++ test.cpp -fPIC -shared -o test.so -I/usr/include/python2.7 -lboost_python

python调用

  直接进入 test.so所在目录,在python文件中使用import test即可像普通modu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值