为什么在构建python模块时出现此错误?

时间:2016-02-22 05:48:12

标签: python c python-2.7

我目前正在使用C语言构建一个python模块。我已经按照一个教程系列来实现自己的建设点,并且我对所发生的事情有了很好的把握。

但是,当我运行脚本来设置所有内容时,我有以下打印输出。看起来错误来自python-dev中的一个头文件;但是,我想到这里来确保它不是我正在做的事情。我将包含错误代码,我可以根据请求提供其他文件。

sudo python setup.py build
running build
running build_ext
building 'lidar' extension
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/local/include -I/usr/include/python2.7 -c lidar_module.c -o build/temp.linux-armv6l-2.7/lidar_module.o
lidar_module.c: In function ‘lidar_test’:
lidar_module.c:8:6: warning: unused variable ‘sts’ [-Wunused-variable]
  int sts = 0;
      ^
In file included from /usr/include/python2.7/Python.h:58:0,
                 from lidar_module.c:1:
lidar_module.c: At top level:
/usr/include/python2.7/pyport.h:802:39: error: expected ‘,’ or ‘;’ before ‘void’
 #               define PyMODINIT_FUNC void
                                       ^
lidar_module.c:24:1: note: in expansion of macro ‘PyMODINIT_FUNC’
 PyMODINIT_FUNC initlidar(){
 ^
lidar_module.c:3:18: warning: ‘lidarError’ defined but not used [-Wunused-variable]
 static PyObject *lidarError;
                  ^
lidar_module.c:19:20: warning: ‘lidar_methods’ defined but not used [-Wunused-variable]
 static PyMethodDef lidar_methods[] = {
                    ^
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

我偷看了头文件并在错误区域找到了这个。

#ifndef PyMODINIT_FUNC
#       if defined(__cplusplus)
#               fndef PyMODINIT_FUNC
#       if defined(__cplusplus)
#               define PyMODINIT_FUNC extern "C" void
#       else /* __cplusplus */
#               define PyMODINIT_FUNC void
#       endif /* __cplusplus */
#endif

1 个答案:

答案 0 :(得分:-1)

我真的必须从控制台搜索行号输出,但我确实找到了解决方案: Build Python (2.7) module on GCC 4.8 fails