Cython C++ 未定义对 std::ios_base::failure 的引用

cython c++ undefined reference to std::ios_base::failure

本文关键字:base failure 引用 ios 未定义 std Cython C++      更新时间:2023-10-16

我只是写了cython代码,就这么简单

# distutils: language = c++
from libcpp.map cimport map,pair
from ios import *

cdef map[int,int] * u = new map[int,int]()
cdef add_item(int n, int x):
    cdef pair[int,int]p = pair[int,int](n,x)
    u.insert(p)
def add(int n, int x):
    add_item(n,x)

添加了构建文件,例如

def make_ext(modname, pyxfilename):
    from distutils.extension import Extension
    return Extension(name=modname,
                     sources=[pyxfilename],
                     language='C++')

并运行简单的脚本,例如

import hello

带线条

导入 pyximportpyximport.install()

在我的 sitecustomize.py

在脚本执行时,我得到ImportError: Building module hello failed: ['ImportError: /home/odomontois/.pyxbld/lib.linux-x86_64-2.7/hello.so: undefined symbol: _ZTINSt8ios_base7failureEn']

c++filt _ZTINSt8ios_base7failureE打印typeinfo for std::ios_base::failure

是否有可能找出我应该包含的对象文件以及如何在我的 pyxbld 文件中执行此操作,例如。

通过添加解决

libraries=["stdc++"]

到 Pyxbld

相关文章: