ошибка: неизвестный тип файла .hpp в модуле расширения distutils

Я пытаюсь сгенерировать привязки Python для некоторого кода C ++, используя SWIG.

Это создало некоторые 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

Решение

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

0

Другие решения

Вы можете использовать параметр «include_dirs». Смотрите документацию по расширению здесь:
http://docs.python.org/2/extending/building.html
http://docs.python.org/2/distutils/apiref.html#distutils.core.Extension

0

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

0
По вопросам рекламы [email protected]