ODE 0.10 のインストール (MSYS+MinGW) ODE本 講義用パワーポイント 一挙公開!
7 月 08

ODE0.10のinstall.txtを読むと,Visual Studio, Autotools (Linux, OS X), Code::Blocksでのビルドについての説明があります.ここでは日本であまりメジャーではありませんが、海外ではそこそこメジャーなマルチプラットフォームの開発環境Code::Blocks8.02用のインストール方法を説明します.

  1. ODE 0.10のインストール
    1. ode-0.10.1.zipのダウンロード.デスクトップへ保存.解凍.
    2. ode-0.10.1フォルダーをcドライブのトップへコピー.以下のディレクトリ(フォルダ)構成になります.
      •  c:\ode-0.10.1 
    3. コマンドプロンプトを起動する.
      • スタート→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」
    4. 以下のようにコマンドを打ち込みますが,打ち間違えると失敗するのでカットアンドペーストを推奨します。自分で打ち込む場合は2個の-(マイナス)文字がつながって見えるので,下画像を参照して注意深く打ち込んでください.
      • cd c:\ode-0.10.1\build 
        
         注:cdコマンドはディレクトリの移動
      • premake --with-demos  --with-tests  --target cb-gcc

        注:withとtargetの前は-(マイナス)が2個連続している.下画像参照.

      • 成功するとcb-gccというcode::blocks用のディレクトリがbuildフォルダの中に生成されるので,あるかどうかエクスプローラで確認する.
        • c:¥ode-0.10.1¥build¥cb-gcc
  2. ODEのビルド
    1. code::blocksを起動
    2. code::blocksのメニューバーから「ファイル(F)」→「開く(O)」を選択
      • c:¥ode-0.10.1¥build¥cb-gcc¥ode.workspace

        を選択

    3. このcの作業だけは中級者向けです.よくわからない方はdの作業へ進んでください。私の授業でODEを使う方はこの作業はしないで、次のdの作業へ進んでください。これによりOPCODEの新しい衝突検出機能を有効にします.よく分からない方は飛ばしてください.
      • ode-0.10.1¥ode¥src¥config.hを何らかのエディタで開き,44行目を以下のように変更し保存する.
        #define dTRIMESH_OPCODE_USE_NEW_TRIMESH_TRIMESH_COLLIDER 1
    4. 重要:ビルドターゲットを必ずDebugDoubleLibとする(下画像の赤丸箇所).ここは非常に間違いやすい箇所です。良く説明を読み十分注意して作業を進めてください。
      • これによりデバッグ向け,倍精度,静的なライブラリが作られます.ODEではDLL(Dynamic Link Library)より静的ライブラリ(Static Library)が推奨されています.静的ライブラリで作成した実行ファイルはサイズが大きくなりますが,配布時はその実行ファイルだけを配布すれば良くライブラリを付属する必要はありません.自分が作成した実行ファイルを配布するときは静的ライブラリがお勧めです.
        また,DebugSingleLibを選ぶと単精度の静的ライブラリが生成されますが,エラーがでやすいのでお勧めできません. というわけで、DebugDoubleLibを必ず選択してください。

      targetdebuglib.jpg

    5. 「ビルド(B)」→「ワークスペースをビルド(W)」を選択.ワークスペースはVisual C++のソリューションと同様なものです.
      • デモプログラムの実行ファイルはc:¥ode-0.10.1¥lib¥DebugDoubleLibに生成される.
      • 試しに,demo_basket.exeをダブルクリックして起動すればODEのビルド成功.
    6. ビルドに失敗する場合の対策
      • DebugDoubleLib” uses an invalid compiler. と怒られたら
        • 原因:他のコンパイラでビルドしようとしています。
        • 対策:設定(s)→コンパイラとデバッガ(C)→グローバルなコンパイラ設定のToolchain実行ファイルが以下のようになっているか確認し(クリックすると画像が拡大される)、違う場合は変更する。
  3. ODE本サンプルプログラムのビルド
    1. ダウンロードカテゴリーからrobosimu******(******は日付)をダウンロードして,c:¥ode-0.10.1にコピーし,そこに解凍する.解凍に成功するとc:¥ode-0.10.1¥roboSimuというディレクトリが生成される.その中にはsrc,texturesフォルダーとがあり,premake.exe, premake.lua, Readme.txt, roboSimu.luaファイルが生成される.srcフォルダーの中にはODE本のサンプルコードがある.
    2. ODEのインストールと同じように,premakeコマンドを使い,code::blocks用のプロジェクトを生成する.コマンドプロンプトを起動し,以下のコマンドを実行する.
      • cd c:\ode-0.10.1\roboSimu 
      • premake  --target  cb-gcc

        注:targetの前は-(マイナス)が2個連続.


    3. code::blocksを起動
    4. code::blocksのメニューバーから「ファイル(F)」→「開く(O)」を選択
      • c:\ode-0.10.1\roboSimu\src\roboSimu.workspace

        を選択

    5. 重要:ビルドターゲットをDebugLibとする.
      ODEのライブラリをビルドするときDebugDoubleLibを選んでいるので、必ずDebugLibを選択する。
    6. 「ビルド(B)」→「ワークスペースをビルド(W)」を選択。エラーが出た場合は、ODEのビルドに失敗している可能性が高いのでODEのビルドをやり直し。
    7. サンプルプログラムの実行ファイルはc:¥ode-0.10.1¥roboSimu¥DebugLibに生成される.
    8. 試しに,arm1.exeをダブルクリックして起動すれば成功.お疲れ様でした!

最終更新日:2008-12-16

投稿:08年07月08日

23 Responses to “ODE 0.10.1 のインストール (Code::Blocks + Windows)”

  1. demu MonsterID Icon demu Says at 2008-11-09 :

    悩める親父さん、

    一件落着してなによりです。このページのターゲットに関する記述が不十分ということですね。加筆しました。

    また、何かあればコメントください。

    でむ

  2. 悩める親父 MonsterID Icon 悩める親父 Says at 2008-11-08 :

    ありがとうございました。私が勘違いしてターゲットを間違えていたことが
    原因でした。再度やり直しましたらうまくいきました。

  3. demu MonsterID Icon demu Says at 2008-11-07 :

    悩める親父さん、

    エラーメッセージはdoubleのODEライブラリを見つけられないということですね。

    ODEを作成したときのライブラリはターゲットをDebugDoubleLibとしたでしょうか? ODE本のサンプルプログラムをビルドするときにDebugLibを間違いなく指定しているでしょうか?

    でむ

  4. 悩める親父 MonsterID Icon 悩める親父 Says at 2008-11-07 :

    ODE本サンプルプログラムのビルドをおこなった際に下記のエラーが出ました。
    ld.exe cannot find -lode doubled
    何度か一からやり直しましたが改善されません。
    なぜでしょう。ちなみサンプルプログラムはダウンロードカテゴリーから最近
    ダウンロードしたものです。demobasket.exeでは問題ありませんでした。

  5. demu MonsterID Icon demu Says at 2008-09-18 :

    qooさん,

    どうもすみません.ODE本サンプルプログラムのインストールを簡単にするためにmybuildのディレクトリを削除し,roboSimuディレクトリだけで全ての作業をできるようにしていました.

    記事が訂正されていなかったようです.さっそく修正させて頂きました.御指摘ありがとうございました.

    でむ

  6. qoo MonsterID Icon qoo Says at 2008-09-17 :

    qooです。

    robosimを展開すると、robosimディレクトリができ、mybuildの
    ディレクトリは存在しません。robosimのディレクトリでWebページ通りの
    コマンドを実行することで、デモの確認ができたのですが、
    解凍の仕方が違うのかな?

  7. demu MonsterID Icon demu Says at 2008-09-16 :

    Highさん,

    解決方法を教えて頂きありがとうございます.この手のエラーは多そうですね.さっそく,FAQに掲載させて頂きます.

    でむ

  8. High MonsterID Icon High Says at 2008-09-15 :

    Highです、解決いたしました。\(^-^)/
    原因はPath変数に他のgcc (Cygwin, WideStudio, AVRGCC) の
    パスの方が先に書かれて居た為、CodeBlocksが他のgccのパスを
    見に行っていた為でした。
    メニューの[設定] -> [コンパイラーとデバッガー]
    グローバルなコンパイラ設定 -> [Toolchain実効ファイル]タブ ->
    [プログラムファイル]タブ で各プログラムの正しいパスを設定しました。

  9. demu MonsterID Icon demu Says at 2008-09-15 :

    qooさん,

    初めまして!

    robosimを展開して、premakeを実行するのはこのページの指示通りmybuildです。ODEのデモプログラムのビルドと同じようにするためにそうしました。私が試したところ問題ありませんでしたが,何か問題ありましたか?

    他のディレクトリでpremakeし,そのプロジェクトファイルでビルドできるかどうかは考慮していません。もちろん,ビルドさえできればどこでもいいと思いますが,ここでは説明のため一箇所に固定しています。

    でむ

  10. qoo MonsterID Icon qoo Says at 2008-09-15 :

    でむさん、はじめまして

    Win環境で試しています。
    robosimを展開して、premakeを実行するのはmybuildではなく、
    展開先のrobosimディレクトリですよね。コマンドの意味を理解していけば、
    気がつくのですが、ちょっと悩みました。
    これからもよろしくお願いします。

  11. demu MonsterID Icon demu Says at 2008-09-15 :

    Highさん,

    おかしいですね。ビルド中にエラーは出ないはずですが… 少なくとも私が試した時(Windows Vista Business+gcc)はそのような問題は起きませんでした。ダウンロード,解凍,あるいはpremakeのどこかで失敗した可能性があります。

    対処方法になりますが,alloca()の代わりにmalloc()を使ってみればどうでしょうか?

    ode/src/config.hの46行目
    /* #define dUSE_MALLOC_FOR_ALLOCA */
    のコメントを外してビルドし直してみてください。

    これでだめなら,インストールを注意深く初めからやり直した方が時間を節約できると思います。

    でむ

  12. High MonsterID Icon High Says at 2008-09-14 :

    codeblocksのインストールを完了し、日本語化を行い
    ODEのビルド 中にコンパイルエラーで以下のビルドメッセージを出して
    止まりました

    ||=== ode, DebugDoubleLib ===|
    C:\ode-0.10.1\ode\src\box.cpp||In function `int dBoxBox(const dReal*, const |
    C:\ode-0.10.1\ode\src\box.cpp|389|warning: division by zero in `|
    C:\ode-0.10.1\ode\src\collision_cylinder_box.cpp||In member function `void |
    C:\ode-0.10.1\ode\src\collision_cylinder_box.cpp|176|warning: division by zero |
    C:\ode-0.10.1\ode\src\collision_cylinder_box.cpp||In member function `int |
    C:\ode-0.10.1\ode\src\collision_cylinder_box.cpp|338|warning: division by zero |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp||In member function `bool |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp|283|warning: division by |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp|284|warning: division by |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp||In member function `void |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp|867|warning: division by |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp||In function `int |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp|1073|`alloca’ undeclared |
    C:\ode-0.10.1\ode\src\collision_cylinder_trimesh.cpp|1073|(Each undeclared |
    ||=== Build finished: 2 個のエラー、 6 個の警告 ===|

    dALLOCA16 マクロはode\src\util.h 55行目 で定義されいて、
    この中のalloca の定義が見えていないようです

    何処を直せばよいのでしょうか?

  13. demu MonsterID Icon demu Says at 2008-08-04 :

    悩める初心者さん,

    つくば市へ出張していて返事が遅れました.

    解決して何よりですが,おかしいですね.
    codeblocks-8.02mingw-setup.exeでインストールしたら,mingwのgcc,g++,gdbがインストールされるので,別にmingwをインストール必要はありません.

    でむ

  14. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-08-01 :

    無事コンパイルできました。

    mingwをインストールしたら正常に起動しました。
    お手数おかけしまして、すいませんでした。

  15. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-08-01 :

    追記です。
    codeBlocksを使用する際、予めMingwをインストールしてなければならないのでしょうか?今しようしているPCはMingwをインストールしてません。

  16. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-08-01 :

    でむさんへ、

    最初からcodeblocks-8.02mingw-setup.exeの方をインストールしていました。
    ただ、最初にcbpファイルが開けないとき、1度アンインストールしてから再インストールしましたが、なぜか最初から日本語が設定されており、設定が何かしらの方法で保存されており、その影響ではないかと思い始めてきました。
    無事コンパイルできたらファーラムに書き込みます。

  17. demu MonsterID Icon demu Says at 2008-08-01 :

    悩める初心者さん,

    パソコンを更新したのでWindows VistaでCode::Blocksを再インストールをしましたが問題なくできました.

    http://demura.net/wordpress/9ode/523.html

    上のURLに詳しいインストールの手順があります.Code::Blocksをダウンロードするときにcodeblocks-8.02mingw-setup.exeではなく,間違ってcodeblocks-8.02setup.exeをインストールしていませんか?

    確認お願いします.

    でむ

  18. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-07-31 :

    他のプログラムでコンパイルしても同じ現象が起きてしまいます。
    また、インストールも書き込み前に何度も行い、今も行いましたがやはり
    同じ結果でした。すこし自分でcodeBlocksについてけんさくしてみます。

  19. demu MonsterID Icon demu Says at 2008-07-30 :

    悩める初心者さん,

    コンパイラが無効なようですね.
    試しに簡単なC言語のプログラムをコンパイルできるか試してください.

    できない場合は,Code::Blocksのインストールが失敗です.もう一度,注意深くCode::Blocksをインストールしてみてください.

    結果を教えてください.

    でむ

  20. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-07-29 :

    返答ありがとうございました。
    再インストールで無事開くことができましたが
    今度はビルドがうまくいきません
    libフォルダができず、ビルドログも以下のようになって
    成功したか失敗したかもわかりません。
    “ode - DebugDoubleLib” uses an invalid compiler. Skipping…
    “drawstuff - DebugDoubleLib” uses an invalid compiler. Skipping…



    “demo_trimesh - DebugDoubleLib” uses an invalid compiler. Skipping…
    “tests - DebugDoubleLib” uses an invalid compiler. Skipping…
    Nothing to be done.
    なにとぞよろしくお願いします

  21. demu MonsterID Icon demu Says at 2008-07-29 :

    悩める初心者さん,

    お久しぶりですね.

    さて,Code::blocksのプラグイン(L)→プラグインの管理(P)…で「プラグインの管理」画面を開き,TitleのCompilerがEnabled 「はい」になっているか確認してください.
    「いいえ」になっている場合は「有効(E)」のボタンをクリックして有効化してみてください.

    TitleにCompilerがなければ何らかの原因でインストールが失敗したと考えられます.Code::blocksをインストールし直した方が早いと思います.

    でむ

  22. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-07-28 :

    追記です。
    開けないファイルはcbpファイルが開けません。
    試しにつぎの説明になる既存のファイルを実行するところで、
    pro1-1の場合も実験しましたがやはりcbpファイルが、
    コンパイラプラグインの関係で開けませんでした。

  23. 悩める初心者 MonsterID Icon 悩める初心者 Says at 2008-07-28 :

    でむさん、おしさしぶりです。

    ただ今、code::blocks、ODEのインストールが終わり
    デモプログラムを実行しようとworkspaceを開いたところ
    「コンパイラプラグインを無効にするのは推奨しません。
    プロジェクトを開く際に、最初にコンパイラプラグインを再度有効
    にする必要がある」というエラーがでてしまい、ファイルが開けません
    ログボックスを消しても再度でてえしまうため再起動するしかありません。
    こういったエラーは設定でなおせるのでしょうか?
    教えていただけると助かります。

Leave a Reply

カウンタ (since 2008-1-11)
Copyright © 1998-2008    Kosei Demura