Cython 编译警告不兼容的类型

Cython compilation warning incompatible types

我正在尝试在 cython 中使用 c DLL,在编译阶段我从 C 编译器收到警告:

warning C4133: "=" : incompatible types - from 'foobar *' to 'foobar *'.

我的 pxd 是这样的:

#!/usr/bin/env python3
#cython: language_level=3

cdef extern from "typedef.h"
    struct foobar:
        long *index
        double *my_array
        int value

cdef extern from "functions.h"
    
    foobar *get_foobar(char *name);

我的 pyx 也是这样:

cimport pxd_file_name

cdef class Handler:
    cdef pxd_file_name.foobar *__foobar

    def load_foobar(self, char *name):
        self.__foobar = pxd_file_name.get_foobar(name) <==

    def another_method(self):
        pass

我收到警告是因为箭头标记的线,但我不明白为什么。

有办法解决这个问题吗?

我设法找到了我的错误。

因为在我的 .h 文件中,我的结构是使用 typedef 声明的,所以我不得不在我的 pxd 文件中写 ctypedef struct foobar 而不是 struct foobar