【发布时间】:2011-01-12 09:46:22
【问题描述】:
我无法运行一个简单的示例。
我正在使用它在 Cython 中声明一个来自 cinterf.h 标头的函数:
cdef extern from 'cinterf.h':
int xsb_init_string(char* p_xsb_path)
C头文件中的声明为:
DllExport extern int call_conv xsb_init_string(char *);
DllExport 和 call_conv 都是在别处定义的宏,并解析为 GCC 编译器指令。
我是否必须在 cdef 中也使用它们才能完全匹配声明?
当我打电话给xsb_init_string() 时:
xsb_init_string('some string')
python 解释器给了我:
'ImportError: ./py_ext.so: undefined symbol: xsb_init_string'
我是否在 cdef 中正确声明了 xsb_init_string() 签名?
【问题讨论】: