2009年8月6日木曜日

windows上でC++でpython拡張するの術

example.i, example.h, example.cppを作ってコマンドラインから
Cだけなら
$ swig -python example.i
C++なら
$ swig -c++ -python example.i
とすると
example_wrap.cxx
とexample.pyができる。

CMakeList.txtにむにゃむにゃと
#-----------------------------------------------------------------------------
set (BoostPython_SRCS
example.cxx
example.h
example.i
example_wrap.cxx
)
#-----------------------------------------------------------------------------
add_library(example SHARED ${BoostPython_SRCS})
target_link_libraries(example debug boost_python-vc80-mt-gd-1_39 debug ${PYTHON_DEBUG_LIBRARIES}
optimized boost_python-vc80-mt-1_39 optimized ${PYTHON_LIBRARIES})
target_link_libraries(example boost_python-vc80-mt-gd-1_39 ${PYTHON_LIBRARIES} )
#-----------------------------------------------------------------------------
何てやってから、ビルドするとexample.dllができる。

できたexample.dllを_example.pydと名前を変えてC:Python26/DLLsの下に置く。
ついでにexample.pyもそこへ置く。

後は、
$ python
>>>import example
>>>
と読み込めればOK
VS2005でコンパイルしてもOK

0 件のコメント:

コメントを投稿