繁体   English   中英

为C ++代码编写python包装器

[英]Writing a python wrapper for c++ code

我修改了C ++代码(Kraskov_v1.C),现在希望从Python调用它。

我能够将C ++代码(Kraskov_v1.C)转换为.so文件,并将其集成到我的python库中。 但是,当我尝试导入库时,它将引发错误。 错误显示为“未定义符号:_Z8mir_xnynPPdiiiiS_S_S_”

mir_xn_yn是我的Kraskov_v1代码调用的一个函数(写在另一个c ++文件即miutils中)。 我包含了头文件

包括“ miutils.h”

在我的包含Kraskov_v1的文件中。

这是我为构建和安装此软件包而编写的setup.py文件。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy.distutils.misc_util

setup(name='Kraskov_v1',
      version='0.1.0',
      ext_modules=[Extension('_Kraskov_v1',sources =        
      ["Kraskov_v1.i","Kraskov_v1.C"],
      include_dirs = ['src'])
      ])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

有人可以告诉我怎么了吗? 我是python和c ++的新手,希望能提供一些帮助。

Extension需要一个库列表,以便在编译后进行链接。

缺少符号表示必需的库未链接到共享库( .so ),并且该库中的定义不可用。

setup(name='Kraskov_v1',
      version='0.1.0',
      ext_modules=[Extension('_Kraskov_v1',sources =        
          ["Kraskov_v1.i","Kraskov_v1.C"],
          include_dirs = ['src']),
          libraries=['kraskov', <..>],
      ])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM