python 如何调用cpp

发布时间:2022-05-24 09:40:05 人气:21 作者:多测师

  一、写一个cpp

  这个cpp的功能是 “加法器”,extern “C”的存在是因为python 的ctype可以调用C但是没有Cplustype~~~所以,~~~

  #include "/home/oujie/anaconda3/envs/pytorch-master/include/python3.7m/Python.h"

  #功能实现在这个函数中

  extern "C"

  int add_func(int a,int b)

  {

  return a+b;

  }

  #下面的这些是调用相关的API把数据格式进行转换,让python可以调用,这也是python的头文件里面的定义好的

python 如何调用cpp

  extern "C"

  static PyObject *_add_func(PyObject *self, PyObject *args)

  {

  int _a,_b;

  int res;

  if (!PyArg_ParseTuple(args, "ii", &_a, &_b))

  return NULL;

  res = add_func(_a, _b);

  return PyLong_FromLong(res);

  }

  extern "C"

  static PyMethodDef CppModuleMethods[] =

  {

  {

  "add_func",

  _add_func,

  METH_VARARGS,

  ""

  },

  {NULL, NULL, 0, NULL}

  };

  extern "C"

  PyMODINIT_FUNC initcpp_module(void)

  {

  (void) Py_InitModule("cpp_module", CppModuleMethods);

  }

  二、对上面的这个CPP编译

  #linux下面编译成so

  gcc -o add_demo.so -shared -fPIC add_demo.c

  #windows下编译成dll

  三、写一个python文件调用

  import ctypes

  dll=ctypes.cdll.LoadLibrary

  lib=dll("./add_demo.so")

  print("python call cpp so:")

  p=lib.add_func(2,3)

  print(p)

  以上内容为大家介绍了python 如何调用cpp,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线