Cython:在cdef类中没有参数的def:gcc警告不是原型

时间:2015-04-21 07:46:41

标签: python python-3.x cython gcc-warning

我有一个cdef class,其中包含一个没有参数的静态def method。例如:

cdef class Test:
    @staticmethod
    def test():
        pass

不幸的是,当我编译它时,我有一个警告告诉函数声明不是原型:

$ echo "import pyximport; pyximport.install(); import test_pyx;" | python3
[...]/.pyxbld/temp.linux-x86_64-3.4/pyrex/test_pyx.c:673:1:
warning: function declaration isn't a prototype [-Wstrict-prototypes]
 static PyObject *__pyx_pf_8test_pyx_4Test_test(); /* proto */
 ^

在我看来,听起来很明显C函数应该至少有一个参数,在这种情况下是void。不幸的是,我无法在def方法中定义void参数。

另一方面,我无法使用cpdef方法,因为在cython中尚未支持@staticmethod注释。

我应该如何避免这种警告(我在构建生产环境包时使用-Werror标志)?

非常感谢你的帮助。

0 个答案:

没有答案