0

我正在尝试使用 SWIG 为一些 C++ 代码生成 Python 绑定。

它创造了一些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呢?我不知道,原代码的作者把实现放在他的头文件中。

4

3 回答 3

0

您可以使用参数“include_dirs”。请参阅此处的扩展文档:http: //docs.python.org/2/extending/building.html http://docs.python.org/2/distutils/apiref.html#distutils.core.Extension

于 2013-11-25T22:47:43.740 回答
0

你确定头文件应该放在源参数中,而不是放在另一个类似的头文件中吗?

于 2013-10-04T20:55:56.550 回答
0

基本上,.h.hpp同样的工作,尝试将扩展名更改为.h,你的 python 脚本可能不知道.hpp文件(这并不可惜)......

于 2013-10-04T10:45:27.873 回答