Qtの導入
前の記事でboost, assimpまでインストールしたので、次はQt周りをインストールします。Win32用のQtとしては、Visual Studio用のバイナリと、MinGWをセットにしたバイナリがありますが、すでにMinGWの環境は構築してあるので、ソースからビルドすることにします。2012年9月初旬の時点での最新版は4.8.2ですが、普通にソースがNokiaのサイトで公開されているのは4.8.1なので、そちらを使うことにします。ファイルqt-everywhere-opensource-src-4.8.1.tar.gzを展開すると、qt-everywhere-opensource-src-4.8.1というディレクトリができ、そこに移動します。基本的には、
> configure.exe ; make
でライブラリや各種ツールをビルドするのですが、MINGWでビルドするので、configure.exeのオプションとして、-platform win32-g++-4.6を指定します。また、デフォルトでビルドされるさまざまなツールをすべてビルドしようとすると、cygwinのメモリ不足によるエラーが発生してライブラリを生成できないので、必要最小限のものだけビルドするようにします。今回は、以下のオプションでビルドしました。
-shared
-release
-opensource
-no-dsp
-no-vcproj
-no-qt3support
-no-webkit
-no-phonon
-platform win32-g++-4.6
-nomake demos
-nomake examples
-prefix d:/local/qt/4.8.1
ここで、javascript関係でエラーが発生します。具体的には、src/3rdparty/javascriptcore/JavaScriptCore/runtimeの、
- JSGlobalObject.h
- JSStaticScopeObject.h
です。それぞれ、
JSGlobalObject.h 53行目の
using JSVariableObject::JSVariableObjectData;
struct JSGlobalObjectData : public JSVariableObjectData {
を、
struct JSGlobalObjectData : public JSVariableObject::JSVariableObjectData {
と、修正します。
同様に、JSStaticScopeObject.hの28行目の、
using JSVariableObject::JSVariableObjectData;
struct JSStaticScopeObjectData : public JSVariableObjectData {
を、
struct JSStaticScopeObjectData : public JSVariableObject::JSVariableObjectData {
と、修正します。
そして、makeが終了したら、
> make install
で、インストールが完了します。
PyQtのインストール
PyQtは、Riverbankcomputingが供給している、QtのPythonバインディングです。PyQtを使うためには、同じところで供給しているPythonのC/C++バインディングであるSIPをインストールする必要があります。SIPはここから、PyQtはここからそれぞれ開発版のスナップショットをダウンロードして展開します。コマンドプロンプト上で、SIPを展開したディレクトリに移動して、
> python configure.py -p win32-g++
を実行すると、Makefileが作成されます。そして、
> make
を実行すると、各種Pythonソースやヘッダファイル、バイナリが作成されます。そして普通は
> make install
で、それらのファイルが、pythonのディレクトリにコピーされるはずなのですが、
/bin/sh: -c: line 1: syntax error: unexpected end of file
というメッセージが出て、コピーがされません。これは、MakefileがMinGWのsh.exeを呼び出す仕様になっていることによるエラーだそうで、一旦MinGWのインストールディレクトリにある、msys/1.0/bin/sh.exeの名前を変更して、
> mingw32-make install
と実行することでインストールが成功します。次にPyQtを展開したディレクトリに移動して、
> python configure.py
を実行すると、Makefileが作成されるので、
> mingw32-make
でビルドします。Qtの全機能に対してバインディングを作成するので、かなり時間がかかります。ここでもそのままではmake installに失敗するので、sh.exeの名前を変更して
> mingw32-make install
でインストールされます。
PyOpenGLのインストール
PyOpenGLは、PythonからOpenGLにアクセスするためのバインディングです。こちらは、Pythonのsetuptools (easy_install, pipなど)を用いてインストールします。最初に、Pythonのインストールディレクトリの下の、scriptsフォルダにPATHが通っていることを確認してください。setuptoolsのダウンロードページから、Windows用のバイナリをダウンロードして実行すると、easy_installがインストールされます。あとは、PyOpenGLのインストールサイトに書いてある通り、コマンドプロンプト上で、
> easy_install PyOpenGL PyOpenGL-accelerate
と実行することで、インストールが完了します。
Py++のインストール
OMPLでは、Pythonバインディングを作成するために、PythonのC++バインディングであるPy++を用いています。さらに、Py++は、PygccxmlおよびGCCXML(GCCの中間ファイルからXMLファイルを作成するソフト)を利用しています。これらは、OMPLとは独立に開発されているのですが、開発元が供給しているバージョン(pygccxml, Py++)を用いると、OMPLでのPythonバインディングの構築に失敗してしまいます。OMPLでの構築ができるように修正されたものが、sourceforgeのOMPLのサイトにあるので、そちらをインストールすることにします。サイトから、pygccxml, pyplusplus(Py++). gccxmlのソースファイルをダウンロードして、インストールします。
GCCXMLのインストール
最初に、gccxmlを解凍します。 gccxmlはCMakeでビルドするので、解凍してできたディレクトリに移動して、buildディレクトリを作成し、そこに移動して、MinGWシェル上で、
$ cmake-gui ..
と実行します。Makefileは、MSYS Makefileを指定してconfigureを実行します。G++の多くの機能に対してチェックを行うので、かなり時間がかかります。
CMakeグループの、CMAKE_INSTALL_PREFIXに、インストール先のディレクトリを指定します。今回は、d:/local/gccxmlとしました。再度"configure"を実行して、上の方で赤い項目がないことを確認して、"generate"を実行すると、Makefileが作成されるので、
$ make; make install
を実行します。インストールしたディレクトリのbinディレクトリを環境変数PATHに追加します。
Py++のインストール
最初に、pygccxmlを解凍したディレクトリに移動して(コマンドプロンプトでもMINGWシェルでもどちらでも可)、
$ python setup.py install
を実行します。エラーメッセージが出なければOKです。
次に、Py++(pyplusplus)を解凍したディレクトリに移動して、
$ python setup.py install
とすることでPy++がインストールされます。
OpenDE (Open Dynamics Engine)のインストール
OpenDEは、衝突検出・物理計算エンジンの一つです。OMPL.appでは、物理計算エンジンとしてOpenDEを用いることができます。
最新の開発版は、svnでチェックアウトします。
svn co https://opende.svn.sourceforge.net/svnroot/opende/trunk opende-trunk
チェックアウトしてできたディレクトリに移動して、
$ bootstrap
を実行して、configure スクリプトを作成します。ここで、opendeが用いているlibtoolと、MINGWで用いているものとでバージョンの不整合があるためmakeでエラーになります。そこで、
$ aclocal; libtoolize --force; autoheader; autoconf
を実行してから bootstrapを実行します。また、OpenDEのデフォルトの設定では、単精度・静的ライブラリなので、configure スクリプトに以下の引数を与えます。(インストール先はd:/localに設定)
$ configure --enable-double-precision --enable-shared --prefix=/d/local
これでMakefileが出来上がったらmake; make installを実行します。
一応、これで下準備は終了です。
一応、これで下準備は終了です。
0 件のコメント:
コメントを投稿