namespaces - Cython extern 函数从 foo.h 转换为类似模块的对象?

标签 namespaces extern cython

我想做以下事情:

cdef extern from "foo.h" namespace "foo":
    int bar(int, int)

def bar(a, b):
    return foo.bar(a, b)

但这不起作用。什么是namespace "foo"部分用于?以及如何实现将从“foo.h”中提取的函数加载到名为 foo 的对象中?

更新 :

我可以使用以下文件结构和代码找到解决方案:
spam.pyx
spam_c.pxd
c\
  spam.c
# spam.pyx
cimport spam_c as spam

def foo(a, b):
    return spam.foo(a, b)
# spam_c.pxd
cdef extern from "spam.c":
    double foo(double, double)

有没有更好的方法来解决这个问题?

最佳答案

我发现这是处理此问题的首选方法。

关于namespaces - Cython extern 函数从 foo.h 转换为类似模块的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7092022/

相关文章:

c# - 在整个项目中删除部分命名空间

c# - Visual Studio 2010 突然看不到命名空间?

c - 为什么我得到 "undefined reference"- 变量标记为 'extern' 的错误?链接器问题?

c - 了解 C 中的 `extern` 存储类说明符

python - 加速 Cython 中的 for 循环

c++ - Cython 扩展类 : "incorrect checksum for freed object" after __dealloc__ method

javascript - 在 JavaScript 中使用命名空间

模块模式中的 JavaScript 命名空间

c - 如何创建外部结构并定义其 typedef

python - 对象成员的 Cython 缓冲区声明