我正在尝试编译一个名为PyFMI的库,但由于有关sizeof不完整类型的错误,它会失败。
我的问题是,是否有人可以帮助我理解为什么会发生这种情况。因为具有不完整类型的文件是由Cython生成的c文件。因此,对我来说,Cython如何不生成任何错误消息,但产生错误的C代码,这有点神秘。
我收到的错误消息是:
错误:'sizeof'无效应用于不完整类型'enum fmi1_status_kind_t' return _PyLong_FromByteArray(bytes,sizeof(enum fmi1_status_kind_t),
我也收到以下可能相关的警告:
警告:在参数列表中声明'enum fmi1_status_kind_t' static CYTHON_INLINE PyObject * __Pyx_PyInt_From_enum__fmi1_status_kind_t(enum fmi1_status_kind_t value);
让我感到困惑的是,enum的定义与其他没有生成错误消息的枚举类似:
cdef enum fmi1_status_kind_t:
fmi1_do_step_status = 0
fmi1_pending_status = 1
fmi1_last_successful_time = 2
这些定义位于pxd文件中,该文件由代码中的大多数文件导入。
有没有人有任何想法为什么Cython会产生不完整的类型,例如在我的情况下?