2

我刚刚写了 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

有线条

导入 pyximport pyximport.install()

在我的网站customize.py

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

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

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

4

1 回答 1

2

通过添加解决

libraries=["stdc++"]

到 pyxbld

于 2013-11-02T07:55:52.947 回答