SWIGを使用して、Pythonで使用するC++コードをラップしようとしています。ここで説明するように、C++コードを.so
ファイルではなくファイルにリンクする必要があるよう.dylib
です。スレッドは、リンクlibtool
するフラグと組み合わせて使用することを提案しています-module
が、私はqmakeを使用しており、それを行う方法についてより正確な指示が必要です。
私の.proファイル(qmake用)は次のようになります。
TEMPLATE = lib
TARGET =
CONFIG += qt debug console plugin no_plugin_name_prefix
QT += opengl
DEPENDPATH += . libgm src
INCLUDEPATH += . libgm src /usr/include/python2.6/
LIBS += -L/usr/lib -lpython
MOC_DIR = .moc
OBJECTS_DIR = .tmp
DESTDIR = bin
TARGET = _mylibname
DEFINES += COMPILE_DL=1
HEADERS += <my_headers> \
src/swig_wrap.h
SOURCES += <my_sources>
src/swig_wrap.cxx
私は最初に呼び出し、次にswig
Eclipseビルダーを使用しています。qmake
make
cd src/
swig -c++ -python swig.i
cd ..
qmake -spec macx-g++
make all
コンパイルとリンクは正常に機能しますが、がbin/_mylibname.dylib
残り、Pythonアプリケーションを実行すると、ステートメントのインポート_mylibname
が失敗します。
誰かがqmakeに*.so
代わりにを構築させる方法を知っていますか?*.dylib
おそらく使用してlibtool
います(または私が気にするすべての他の方法)?私のプラットフォーム:
- Mac OS X Snow Leopard(10.6)
- Python 2.6
- SWIG 1.3.31
- qmake2.01aとQt4.6.2
- g ++ i686-apple-darwin10-g ++-4.2.1
私はリンクの問題についてあまり知識がないので、優しくしてください:-)
オーレ