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

ヘッダー ファイルは、別の同様のヘッダーではなく、sources 引数に入れることになっていますか?

于 2013-10-04T20:55:56.550 に答える
0

基本的に.h.hpp同じジョブを実行し、拡張子を に変更してみて.hください。Python スクリプトは.hppファイルを認識していない可能性があります (これは残念ではありません)...

于 2013-10-04T10:45:27.873 に答える
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 に答える