2013-10-04 4 views
0

Я пытаюсь создать привязки Python для некоторого кода на C++ с помощью SWIG.Ошибка: неизвестный тип файла .hpp 'в модуле расширения distutils

Он создал несколько файлов blah_wrap.cxx и blah.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'. Я не думаю, что необходимо включать файлы '_wrap.cxx' в ваш список' sources', но это, вероятно, не является источником ошибки –

ответ

0

Вы уверены, что заголовочные файлы должен идти в аргументе источников, а не в другом, как заголовки?

0

В основном, .h и .hpp делают один и то же задание, попытайтесь изменить расширение на .h, ваш питон скрипт не может знать .hpp файлов (которые не стыдно) ...