UbuntuにODEをインストール
はじめに
授業で使うためUbuntu 18.04.2 LTSにOpen Dynamics Engineを導入した。
基本的にこのサイトを参考にしたが、エラーが発生したので対処法をまとめた。
「ODE導入」hikaru149の日記
https://hikaru149.hatenablog.com/entry/20180402/1522639370Open Dynamics Engineとは
ODE(Open Dynamics Engine、オープン・ダイナミクス・エンジン)とは、オープンソース方式で開発されている物理演算エンジンである。BSDライセンスとLGPLの両ライセンスが適用されている。コンポーネントとして動力学演算部分と衝突検出演算部分から構成されている。流体シミュレーション・布シミュレーション・軟体の表現はサポートされていない。
wikipediaより引用(https://ja.wikipedia.org/wiki/Open_Dynamics_Engine)導入手順
- ODEのダウンロード
ここからダウンロード
https://sourceforge.net/projects/opende/ダウンロードしたらhomeに展開しておく
- インストール設定
cd ode-0.13
sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev
./bootstrap
./configure
./configure --with-trimesh=opcode --enable-new-trimesh --enable-shared --enable-release --with-x --enable-double-precision --with-libccd --enable-libccd
make
ここでエラーが発生
>`demo_jointPR.cpp:332:36: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]` >` argv[j] == '\0' || // We should have a path here`
どうやらヌル文字ではなくヌルポインタを使わないと行けないらしい。
- ライブラリの書き換え
ode-0.13/ode/demo 内の
"demo_jointPR.cpp"332行目
"demo_jointPU.cpp"582行目
"demo_piston.cpp"の662行目'\0'
をNULL
に書き換える。(※2020/05/07追記、今回はなぜか(char*)0
でうまくいきました)
- 再度コマンド入力
make
sudo make install
こんな画面が表示されたらだいたい成功
残りのコマンドも打っておく
sudo cp -r include/drawstuff /usr/local/include/
sudo cp drawstuff/src/.libs/libdrawstuff.* /usr/local/lib
sudo ldconfig
sudo mkdir /usr/local/lib/drawstuff.textures
sudo cp drawstuff/textures/* /usr/local/lib/drawstuff.textures/
プログラムのコンパイル方法
ライブラリオプションとインクルードオプションを設定する必要がある。
下記コマンドを使えばOKg++ ファイル名 -I/usr/local/include/ode -I/usr/local/include/drawstuff -DdTRIMESH_ENABLED -DdDOUBLE -lode -ldrawstuff -lGL -lGLU -lglut -lX11