如何用Cython包装C ++ <algorithm>库?

时间:2019-05-16 22:51:56

标签: c++ cythonize

我有一个同事用cython.weave封装C ++库中的函数的代码:

def partialsort(a, K):
    support_code = "#include <algorithm>"
    code = "std::partial_sort (&ak(0), &ak(K), &ak(N));"
    N = len(a)
    ak = a.copy()
    vars = ['ak', 'K', 'N']
    s = weave.inline(code, vars, support_code=support_code,
                     type_converters=converters.blitz)

如果没有Weave工具,我想用Cython代替它。到目前为止,我已经基于http://docs.cython.org/en/latest/src/userguide/external_C_code.html尝试过运气,并在Cython模块中尝试了以下操作,只是为了检查我是否可以完全访问该库:

cdef extern from "<algorithm>":
    pass

当我尝试构建Cython模块时,出现以下错误:

csorting.c:604:10: fatal error: algorithm: No such file or `folder
 #include <algorithm>
          ^~~~~~~~~~~
compilation terminated.

据我了解,<algorithm>是一个C ++库。 C ++是这里的问题吗?我有g++,但是Cython构建设置使用gcc<algorithm>是必须单独安装的库吗?

0 个答案:

没有答案