ODE-0.13をMSVCでビルド
ODE(Open Dynamics Engine)は、オープンソースの動力学計算ライブラリです、オフィシャルサイトは、http://www.ode.orgであり、ソースコードをダウンロードすることができます。自分のプログラムでOEDを利用して動力学計算を使う場合には、自分でコンパイルする必要があります。
ODE自体は、Unix系のOSにもWindowsにも対応しているようですが、Windows上でVC++を使ってコンパイルするためには、自分のコンパイラに対応したソリューションを生成しなければいけません。
残念ながら、OEDの正式サポートは、VisualStudio2010までとなっています。これは、OEDで利用しているVS用のソリューションファイル生成プログラム(premake4.exe)がVisualStudio2010までにしか対応してないためのようです。
したがって、VisualStudio2012以降のコンパイラに対応したライブラリを生成する場合には、VisualStudio2010用のソリューションを生成して、VisualStudio2012等の自動変換機能を使うしか方法がなさそうです。
幸運にも、VisualStudio2010以降は、ソリューションファイル、プロジェクトファイルの構造がほとんど同じ(一部の変数名等が異なるだけのようです)ので、自動変換機能で問題ありませんでした。
準備
ODEをMSVCでコンパイルするための準備をします。
ODEのオフィシャルサイトから0.13以降のバージョンのソースコードをダウンロードします。0.12以前のバージョンは、VusualStudio2010には対応していない(正確には、ソリューションファイルを生成するpremakeが対応していないだけなのですが)ので気をつけてください。
あとは、VisualStudioをインストールしておきます。VisualStudioは、Express版でも構いません。
VisualStudio は、http://www.visualstudio.comの「ダウンロード」から体験版、Express版ともにダウンロードすることができます。
OEDのソースコードは、http://www.ode.orgの「download」から配布サイト(現在は、sourceforge.net)に行くことができます。2014年12月現在では、2月14日にリリースされた0.13が最新版となっています。ソースコードは、tar+gzでアーカイブされていますので、Windowsで解凍する場合には、7-zipなどの解凍ソフトが必要です。
ode-0.13.tar.gzをダウンロードできたら適当なディレクトリ(以下では、C:\Develop とします)に展開してください。
以上でodeのライブラリ生成の準備終了です。
ソリューションファイルの生成
VisualStudioのインストールとODEのソースコードの展開が終われば、ライブラリ生成のためのソリューションの生成を行います。
ODEのソリューションの生成は、buildの下にあるpremake4.exeというプログラムで生成します。premakeは、CmakeのようにマルチプラットフォームのMetaMakeシステムです。2014年12月現在での最新版は、2010年にりりーすされたver.4,3のようです。このバージョンは、VisualStudio2010 までしか対応していません。(可能であれば、CMakeに移行してほしいものですが…)
では、コマンドプロンプトを起動し、C:\Develop\ode-0.13\buildに移動してください。
premake4の使用方法は、
premake4 --help
とすれば、使用可能なオプション等が表示されます。
ODEのライブラリのみを生成する場合には、
premake4 vs2010
とすればとりあえずは生成可能ですが、ここでは、" --with-libccd --only-double --only-static" のオプションをつけて生成したいと思います。
premake4 --with-libccd --only-double --only-static
これで、vs2010というディレクトリが生成され、その下にodeのスタティックライブラリを生成するためのソリューションファイルが生成されています。ここで生成されるソリューションは、VisualStudio2010ようですが、VS2012, VS2103を利用する場合には、各システムの自動変換機能を利用すればOKです。
また、premake4の主なオプションは、下記のようになっています。
- --with-demos
- includes the demo applications and Drawstuff library.
- --with-tests
- includes the automated test suite, recommended if you intend to modify ODE.
- --no-trimesh
- excludes support for triangle mesh collision geometries, reducing the size of the library.
- --with-gimpact
- uses the GIMPACT library to check for triangle mesh collisions instead of OPCODE.
- --with-libccd
- uses libccd to handle pairs of geoms that don't have yet specialized tests.
- --only-double
- only use double-precision math
- --only-single
- only use single-precision math
- --only-shared
- only build shared (DLL) version of the library
- --only-static
- only build static version of the library
ライブラリの生成
ソリューションファイルの生成が終われば、ode.slnというファイルをインストールしたVisualStuidoで開きます。VisualStudio 2012,2013の場合には、自動変換を行うかどうかを聞いてきますので'yes'で答えておけば大丈夫だと思います。
最後は、ソリューションをビルドすれば、libというディレクトリの下にライブラリが生成されていると思います。
以上でodeのライブラリの生成は終了です。
なお、このページに添付したソリューションファイルは、C:\Develop の下にソースコードを展開した状態で、生成したものです。ご自由にお使いください。
資料