Visual C++ 2008 EEを使った自作ODEプログラムのビルド法


Visual C++ 2008 EEを使い自分で作成したODEプログラムのビルド法を説明します.

  • 環境設定
    • システム環境変数の設定 (Windows Vista)
      1. ここでは、ODEとdrawstuffに関するdllの場所をシステムに教える設定をします。
      2. コントロールパネルを開き、「システムとメンテナンス」の項目を選択すると以下の画面になる。 「システム」があるので選択する。

      3. 「システムのプロパティ」の画面になるので、下にある「環境変数(N)」をクリックする。
      4. 「環境変数」ウインドウが開くので、「システム環境変数(S)」のPathを編集する。 つまり、「システム環境変数(S)」のPathにカーソルを当てクリックしてから、 「編集(I)」をクリックする。
      5. 「システム変数の編集」ウインドウが開くので、「変数値(V)」の一番最後に以下を追加する。なお、C:¥ode-バージョン番号¥binの前にある記号はセミコロン;です。また,バージョン番号にはお使いのODEのバージョン番号を入れてください.ここでは,ode-0.10.1をお使いの方はバージョン番号に0.10.1を入れてください.
        ;C:¥ode-バージョン番号¥lib¥DebugDoubleLib
        注意:上の文字列をカット&ペーストで貼り付けると失敗します。上の文字列は表示の関係で全角文字が含まれています。半角英数文字で入力しなければなりません。

    • 作業用フォルダの確認
      • ここでは、Visual C++標準のフォルダの中に自作ODEプログラム用のフォルダーmyprogを作り、それを作業用フォルダーとして使います.
        C:¥Documents and Settings¥ユーザ名¥My Documents¥Visual Studio 2008¥Projects¥myprog
    • drawstuffフォルダのコピー
      • C:¥ode-バージョン番号¥drawstuffフォルダを丸ごと上のProjectsフォルダの中にコピーします。 これは、ODE本のサンプルプログラムでは空や地面の模様を表すテクスチャファイルの場所を、実行ファイルから相対位置で指定しているためです。 絶対パスで指定すれば必要ありませんが、互換性に欠けてしまうので相対パスで指定しています。
    • Visual C++ 2008 EEの設定
      • ツール(T)→オプション(O)を選択
      • VC++ディレクトリのインクルードファイルを以下のように追加する.
        C:¥ode-バージョン番号¥include
      • VC++ディレクトリのライブラリファイルを以下のように追加する.
        C:¥ode-バージョン番号¥lib¥DebugDoubleLib

  • 自作プログラムのビルド法
    • I. プロジェクトファイルを使わない方法
      1. ここでは、自分でODEを使ったプログラムを作成する方法を紹介しましょう。ソースコードを一から作成するのは大変なので、ODE本のサンプルプログラムpro1-1を使います。このプログラムはボールが自由落下するだけのとても簡単なプログラムです。
      2. ダウンロードしたzipファイルを作業用フォルダの中で解凍します。解凍後はこの例では以下のようになります。
        • C:¥Users¥ユーザ名¥Documents¥Visual Studio 2008¥Projects¥myprog¥pro1-1
      3. Visual C++の「ファイル(F)」→「新規作成(N)」→「プロジェクト(P)」を選択。
      4. プロジェクトの種類はWin32コンソールアプリケーションを選ぶ。 ここでは「プロジェクト名(N)」を「pro1-1」とします。標準では「ソリューション名(M)」はプロジェクト名と同じになるので、あえて入力する必要はありません。
      5. 「Win32 アプリケーション ウィザードへようこそ」の画面が開く、「次へ>」をクリックする。
      6. 「アプリケーションの設定」になるので、以下のように「空のプロジェクト(E)」を選ぶ (重要)。 今 回はODE本のサンプルプログラムをそのまま使うのでこのようにします。また、自分で一から作成する場合でも、「空のプロジェクト」を選択しないと stdafx.hという謎のヘッダファイルをインクリードしたり、main関数の代わりに_tmain関数を含んだファイルが自動されます。今まで習って きた標準C++言語の常識が全く通用しないMicorsoftの世界に陥ってしまうので教育用途としてはお勧めできません。
      7. 「ソースファイル」→「追加(D)」→「既存の項目(G)」を選択し、ODE本のサンプルプログラムhello.cppを選ぶ。
      8. 「リソースファイル」→「追加(D)」→「既存の項目(G)」を選択し、Projects¥drawstuff¥src¥resource.rcを追加する.

        Projectsフォルダーにdrawstuffフォルダがない場合は,C:¥ode-バージョン番号¥drawstuffフォルダを丸ごと上のProjectsフォルダの中にコピーする。


      9. 「プロジェクト(P)」→「pro1-1のプロパティ(P)」を選択する。
      10. 「構成プロパティ」→「全般」の出力ディレクトリを.(ドット)に変更する.
      11. 「構成プロパティ」→「C/C++」→「プリプロセッサ」を選択し、右欄の「プリプロセッサの定義」に以下を追加する. dDOUBLEの前はセミコロン.
        ;dDOUBLE
      12. 「構成プロパティ」→「リンカ」→「入力」を選択し、右欄の「追加の依存ファイル」に 以下のようにライブラリを追加する。
        ode_doubled.lib
        drawstuffd.lib  opengl32.lib  glu32.lib  winmm.lib

      13. ビルドする。つまり、「ビルド(B)」→「pro1-1のビルド(U)」を選択する。
      14. 成功するとpro1-1フォルダの中に実行ファイル pro1-1.exeが作成される。

      15. pro1-1.exeをダブルクリックして実行する。成功すると以下のウインドウが開く。
      16. おしまい。お疲れ様!

    • Ⅱ. 既存のプロジェクトファイルを利用する方法
      1. ここでは、「Ⅰ.プロジェクトファイルを使わない方法」で作成したプロジェクトファイルを利用する方法を説明します。こちらの方がより簡単です.
      2. pro1-3-080727.zipをダウンロードして、作業フォルダに展開する。この例では次のようになる。
        C:¥Users¥ユーザ名¥Documents¥Visual Studio 2008¥Projects¥myprog¥pro1-3
      3. 上で作成したpro1-1.vcprojがpro1-3フォルダの中にある.プロジェクトファイルの名前pro1-1.vcprjをpro1-3.vcprojに変更する。
      4. pro1-3.vcprojをダブルクリックしてVisual C++を開く。ソリューションエクスプローラーの中のフォルダ名がpro1-1になっているので、カーソールを当て右マウスボタンをクリックして「名前の変更(M)」を選択し、pro1-3に名前を変更する。

      5. pro1-3の「ソースファイル」のhello.cppにカーソールを当て、右マウスボタンをクリックして、「削除(V)」を選択しhello.cppを削除する。

      6. 「ソースファイル」にカーソールを当て、右マウスボタンをクリックして、「追加(D)」→「既存の項目(G)」を選択する。

      7. 「既存項目の追加」ウインドウが開くのでmonoBot.cppを選択し、「追加(A)」ボタンをクリックする。
      8. ビルドする。つまり、「pro1-3のビルド(U)」を選択する。すると、すぐにソリューションファイルpro1-3.slnを保存するよう聞かれるので「保存(S)」をクリックする。

      9. 成功すると実行ファイルpro1-3.exeができる。
      10. pro1-3.exeをダブルクリックして実行する。
    • これで、本当のおしまい。お疲れ様!
19 Comments
  1. OS WINDOWS XPで次のエラーがでます。
    ODEのバージョンはODE0.10.1です。
    お教えください。

    1>LINK : fatal error LNK1104: ファイル ‘ode.obj’ を開くことができません。
    1>ビルドログは “file://c:\Documents and Settings\onishi\My Documents\Visual Studio 2008\Projects\pro1-1\pro1-1\Debug\BuildLog.htm” に保存されました。
    1>pro1-1 – エラー 1、警告 2
    ========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========

  2. demuさんこんばんは!

    エラーで

    fatal error C1083: include ファイルを開けません。’ode/ode.h’: No such file or directory

    と出てしまいました。。。

    どうすればよいですか??

  3. でむさん

    ありがとうございました。

    実行プログラムが別の場所に作成されていたようです。
    場所を移動させ実行すると動きました。

    ありがとうございました。

  4. yamaさん、

    Can’t open image file ‘../../drawstuff/textures/sky.ppm’

    このエラーは、実行形式ファイルから2つ上のディレクトリ(フォルダ)の中に、drawstuffディレクトリがあり、そのなかにtexturesディレクトリがあり、またその中にあるsky.ppmを開けないという意味です。

    上の場所にsky.ppmがあるか確認してください。ない場合は、コピーするか、相対パスではなく絶対パスで指定するようにしてください。

    でむ

  5. はじめまして
    yamaと申します。

    教えていただきたいのですが。
    以前eijiさんが質問されています
    Error「Can’t open image file ‘../../drawstuff/textures/sky.ppm’」
    というメッセージが出てきます。
    回答にもあるように環境設定を見直しましたが、
    結果は変わりません。

    Projectsの直下にdrawstuffをフォルダごとコピーし、texturesフォルダの中にsky.ppmがあるのも確認したのですが・・・。

    ちなみに
    OS:Windows XP
    ODE ver:0.11
    です。

    よろしくお願いします。

  6. saiさん,

    はじめまして.

    C:¥ode-バージョン番号¥lib¥DebugDoubleLibの中ode_doubled.libがありますか?

    ない場合はhttp://demura.net/wordpress/9ode/538.htmlの指示に従ってを作成し,ある場合はパスの設定が悪いと思いますので,もう一度注意深く説明を見ながら設定して頂けないでしょうか?

    でむ

  7. demuさん

    はじめまして、saiと申します。

    記事の通りにサンプルのビルドをしたのですが、
    LINK : fatal error LNK1104: ファイル ‘ode_doubled.lib’ を開くことができません。
    というエラーが出て実行できません。

    何が問題でしょうか?

    よろしくお願いします。

  8. eijiさん,

    ファイルを置く場所が悪いと思います.

    ../../drawstuff/textures/sky.ppm
    は,実行ファイルの2つ上のフォルダにあるdrawstuffの中のtexturesフォルダ,そのまたフォルダの中のsky.ppmというファイルを参照しています.そのファイルがないためエラーになっています.

    記事の「環境設定」→「drawstuffフォルダのコピー」は記事のとおり作業しましたか?

    わかりづらい箇所があれば御指摘ください.説明を加えます.

    でむ

  9. 自作プログラムのビルドを行い、exeをダブルクリックして実行するところまではできたのですが、画像?がでてこずErrorとなってCan’t open image file ‘../../drawstuff/textures/sky.ppm’ というメッセージが出てきました。これはどうすればよいのでしょうか?

  10. nishimatuさん,

    解決して何よりです.

    問題点あるいは,説明のわかりづらい箇所を御指摘頂ければありがたいです.

    でむ

  11. プロジェクトファイルを使わない方法のmのところでビルドすることができなかった件ですが、エラーの確認をするために起動させてみたところ、今度はきちんと動き、その後のⅡ. 既存のプロジェクトファイルを利用する方法でも問題なく動きました。ですので結局エラーが何だったかわかりませんでした。一応今はきちんと起動しているので良いのですが、今後どうなるかわからないのでそのときはよろしくお願いします。

  12. この記事を参考にやってみましたが、自作プログラムのビルド法
    I. プロジェクトファイルを使わない方法のmのところでビルドするこができず、
    失敗とでてきました。(2回試しました。)これは自分のパソコンが悪いのか、他の所でも同じようなことがあるのか確認したいです。

  13. Taroxさん

    コメントありがとうございます.自分の環境では試したのですが,他の方の環境でも問題なく動くことがわかり安心しました.

    今後ともコメントください.

    でむ

  14. demuさん,こんばんは.
    この記事を参考にやってみたところ,無事に動かすことができました.
    ODE0.9と異なる環境変数のpath通しと,プリコンパイラの設定ができていなかったようです.
    詳細な記事をありがとうございました.

Comments are closed.