【问题标题】:Cython in C/C++C/C++ 中的 Cython
【发布时间】:2013-10-02 06:43:01
【问题描述】:

我一直在几个项目中使用 Cython。我看到很多关于将 C++ 和 C 包含到您的 cython 代码中的文档。有时,当我扩展一个现有的 C/C++ 项目时,我会想利用所有不错的特性和数据类型来编写 Python 风格的代码。如果有一个简单的方法,那就太好了。从 C++ 或 C 调用 cython 编译函数。有没有一种简单的方法可以做到这一点,因为我似乎无法在文档中找到它。或者也许我不应该为此使用 Cython??

最好的问候雅各布

【问题讨论】:

  • 我遇到了类似的问题,我想这就是你要找的:stackoverflow.com/a/5721123/321772
  • 谢谢 :-) 你应该把它作为答案发布,这样我就可以相信你

标签: c++ python c cython embedding


【解决方案1】:

我对你的问题有一个更受限制的版本,@fabrizioM 的answer 应该适合你:


cython 的诀窍在于使用关键字 public

cdef public double cython_function( double value, double value2 ):
    return value + value2

这样就可以直接链接了

作为一个普通的 C 库:

#ifdef __cplusplus {
extern "C"
#endif

double cython_function( double value, double value2 );


#ifdef __cplusplus {
}
#endif

【讨论】:

  • 没错。此外,您必须在 C/C++ 文件中添加 #include "../yourext_api.h" 文件(使用 public 关键字时由 Cython 生成)才能从 C 端使用 cython_function...
  • 大括号 {} 似乎放错了位置。见this question for comparison
猜你喜欢
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2015-09-08
  • 1970-01-01
相关资源
最近更新 更多