У меня проблемы с запуском голого примера.
Я использую это, чтобы объявить функцию в 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?