swigでpythonバインディングをvs8で。
やろうと思ったがpython26.libがvs9で萎えたのでやめた。
折角なのでmake.batだけでも晒しておきます。
@echo off setlocal set SWIG=c:\cygwin\bin\swig.exe call "%VS80COMNTOOLS%vsvars32.bat" set PAYTHON_DIR=f:\Python26 set PAYTHON_LIB=%PAYTHON_DIR%\libs set INC=/I%PAYTHON_DIR%\include /I%PAYTHON_DIR%\PC set CFLAGS=/EHsc /Ob2 /Ox /Ot /arch:SSE2 /MD set PAYTHON=%PYTHON_DIR%\python.exe set NAME=hoge set TARGET=_%NAME%.pyd if /I "%~1" == "clean" goto :clean if /I "%~1" == "test" goto :test :all "%SWIG%" -o %NAME%_wrap.cpp -c++ -python %NAME%.i cl %CFLAGS% %INC% /c /Fo%NAME%_wrap.obj %NAME%_wrap.cpp cl %CFLAGS% %INC% /c /Fo%NAME%.obj %NAME%.cpp link /OUT:%TARGET% /DLL /LIBPATH:"%PAYTHON_LIB%" /MACHINE:x86 python26.lib %NAME%_wrap.obj %NAME%.obj goto :eof :test call :all %PYTHON% %NAME%_test.py goto :eof :clean del *.obj *.pyc %TARGET% %NAME%.py %NAME%_wrap.* goto :eof
ビルドはできたけどランタイムの不整合でモジュールが読み込めませんでした(T〜T
vs9環境を入れてやればmake testでうまく動作するはず。
密かにc++ビルドに変わってます。