我无法运行一个简单的示例。
我正在使用它在 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'
我xsb_init_string()
是否在 cdef 中正确声明了签名?