在使用numpy标头的代码中,我收到以下错误:
In file included from
/usr/include/python2.7/numpy/ndarrayobject.h:27:0,
from /usr/include/python2.7/numpy/arrayobject.h:4,
from ...:
...:
/usr/include/python2.7/numpy/__multiarray_api.h:1532:144: error:
return-statement with no value, in function returning 'int' [-fpermissive]
#define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }
numpy标头中的相关代码段如下:
#if PY_VERSION_HEX >= 0x03000000
#define NUMPY_IMPORT_ARRAY_RETVAL NULL
#else
#define NUMPY_IMPORT_ARRAY_RETVAL
#endif
#define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }
这自然会导致我看到的编译错误,因为上面的 #else
情况返回一个void,然后由返回值为 int
的函数返回 . 我真的不明白这是故意还是应该报告的错误?
有关我的构建系统的更多信息:Linux版本4.15.0-39-generic(buildd @ lgw01-amd64-054)(gcc版本7.3.0(Ubuntu 7.3.0-16ubuntu3))#42-Ubuntu SMP Tue 10月23日15 :2018年2018年2018年