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
我正在尝试在 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