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
私は最初に呼び出し、次にswigEclipseビルダーを使用しています。qmakemake
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
私はリンクの問題についてあまり知識がないので、優しくしてください:-)
オーレ