为c++cod编写python包装器

2024-10-08 18:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我修改了C++代码(kraskovv1.c),现在我希望用Python调用它。你知道吗

<>我能够将C++代码(kraskovv1.c)转换成.so文件并将其集成到Python库中。但是,当我尝试导入库时,它抛出了一个错误。错误为“未定义的符号:Z8mir\uxnynppdIIiis\u S\u S”

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

包括“miutils.h”

在我的文件里有克拉斯科夫v1。你知道吗

这是你的名字设置.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++新手,希望能得到一些帮助。你知道吗


Tags: 文件代码fromimportso错误setupextension
1条回答
网友
1楼 · 发布于 2024-10-08 18:28:00

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', <..>],
      ])

相关问题 更多 >

    热门问题