2013-10-04 62 views
0

我正在尝试使用SWIG为某些C++代码生成Python绑定。错误:distutils扩展模块中的未知文件类型'.hpp'

它创建了一些blah_wrap.cxxblah.py文件。

然后我创造了这个setup.py

from distutils.core import setup, Extension 

ext = Extension('_ev3', 
    sources=[ 
     'ev3_serial_wrap.cxx', 
     'ev3_serial.hpp' 
     'ev3_motor_wrap.cxx', 
     'ev3_motor.hpp' 
     'ev3_i2c_wrap.cxx', 
     'ev3_i2c.hpp' 
     'ev3_analog_wrap.cxx', 
     'ev3_analog.hpp' 
    ], 
    language='c++', 
) 

setup (name = 'evpy', 
     version = '0.1', 
     author  = "Pepijn de Vos", 
     description = """ 
     An EV3 API. 
     """, 
     ext_modules = [ext], 
     packages=['evpy'], 
     ) 

但后来我得到

$ python3 setup.py build 
running build 
running build_py 
running build_ext 
building '_ev3' extension 
error: unknown file type '.hpp' (from 'ev3_analog.hpp') 

.hpp是一个相当标准的C++扩展吗?为什么不是.cpp?我不知道,原始代码的作者在他的头文件中放置了实现。

+0

'distutils'将使用SWIG生成'_wrap.cxx'当您使用命令'蟒蛇setup.py build_ext'。我不认为需要在'sources'列表中包含'_wrap.cxx'文件,但这可能不是错误的根源 –

回答

0

确定头文件应该去源头参数,而不是在另一个像头文件?

0

基本上.h.hpp做同样的工作,尽量延长更改为.h,你的Python脚本可能不知道.hpp文件(这是不是一种耻辱)...