6

これが、Windows に OGRE をインストールするのに苦労している多くの人々の助けになることを願っています。私はそうしました、そして、私は他の誰にも同じ量の拷問を受けさせたくありません.

他の Web サイトで説明されているよりも多くの手順と詳細を説明することで、この説明を他とは違うものにしようとしました。他の人が記録することさえ考えもしなかったであろう問題と解決策。

4

1 に答える 1

19

ソースから Ogre をビルドする通常の方法:

Ogre の新しいセルフ エクストラクターを入手します (これらの手順は Ogre バージョン 1.7.3 用です)
CMake
をダウンロードしてインストールします DirectX SDK をダウンロードしてインストールし
ます 少なくとも 4.3GB の空き容量があるドライブに "OGRE" という名前のフォルダーを作成します。
ogre のソースを OGRE フォルダーに抽出します。Ogre の依存関係をダウンロードし、OGRE フォルダーに展開します。CMake を実行し、既定のコンパイラとして Visual Studio 10 を選択します。
Ogre のソース ディレクトリを指定します。ogre_src_v1-7-3 フォルダーです。また、Windows の OGRE_HOME 環境変数を ogre_src_v1-7-3 のフル パスに設定します。(マイ コンピューター、プロパティ、詳細設定、環境変数、ユーザー変数、新規を右クリックして設定します) CMake が作成するバイナリを配置するディレクトリを指定します。OGRE フォルダに「Binaries」という名前のディレクトリを作成できます。
CMake で「構成」を押します。
赤い線のエントリがたくさん表示されます。OGRE_DEPENDENCIES_DIR エントリには、上記で抽出した依存関係フォルダーへのパスを指定します。
「構成」をもう一度クリックすると、赤い線がすべて白くなります。これは、構成が正常に機能したことを意味します。
「生成」をクリックします。
それはCMakeでそれです。
バイナリ フォルダーに移動すると、OGRE.sln が表示されます。ダブルクリックしてVS2010で開きます。
「ALL-BUILD」プロジェクトを右クリックしてビルドするか、F5 キーを押します (F5 キーを押した場合、ビルドが完了すると、実行できないというメッセージが表示されますが、これは問題ありません。すべてのビルドが意図されているわけではないためです)。
ビルド プロセスは、1GB RAM を搭載したデュアル コア 2GHz PC で約 30 分かかります。
「Sample browser」プロジェクトをアクティブ プロジェクトとして設定し、F5 キーを押して実行します。
それでおしまい!Ogre がシステムに設定されています。

================================================== ====

しかし、ビルドに問題がある場合:

多くの問題を回避するには、Ogre のソース コードを元のフォルダー/zip ファイル/自己解凍プログラムとしてインターネットから取得し、マシンに DirectX SDK がインストールされていることを確認してください。システム上に Ogre 用のフォルダーを作成し、そこにソース コード フォルダーを保存します。完了すると、Ogre のソース、バイナリ、およびビルドされたファイルは合計で約 4.3GB のディスク容量を占有します。

[注意: Visual Studio 2008 をシステムにインストールしないでください。そうした場合、ogre.sln のビルド中に問題が発生した場合 (致命的なエラー C1902: プログラム データベース マネージャーの不一致。インストールを確認してください)、VS2010 でビルドしている場合は、mspdb100.dll ファイルを削除してください。(問題が本当に VS2008 のインストールによるものかどうかは確認されていません。このファイルに書かれている 1 つの手順が原因である可能性があります。mspdb100.dll は、あるべきではないフォルダーにコピーされます。 VS2008でOgreを再構築すると、「致命的なエラー」が表示され、mspdb80.dllを削除することが解決策です)]

Ogre ソースをシステム内のフォルダーに抽出します。次のようなディレクトリ パスがあると便利です:バイナリ用の
"your-root\Ogre\Binaries\"
および
ソース用の *"your-root\Ogre\ogre_src_v1-7-3\"*

CMake: CMake
をダウンロードしてインストールします。これは、システムにインストールするために Ogre を構成するのに役立ちます。
CMake 実行可能ファイルを実行します。
「現在のユーザーのシステム PATH に cmake を追加する」を選択します。
cmake がインストールされた場所を見つけて、\CMake 2.8\bin\cmake-gui.exe
を実行します。バイナリとソースのディレクトリを指定します。
CMake GUI の [詳細] チェックボックスをクリックし
ます CMAKE_CXX_COMPILER を your-Visual-Studio-installation-path/VC/bin/cl.exe に
設定します CMAKE_C_COMPILER を your -Visual-Studio-installation-path/VC/bin/cl.exe に設定します
CMAKE_RC_COMPILER を、whatever-path-your-RC.exe-file-is-in/RC.Exe に設定します (「Program files」フォルダーで検索すると、rc.exe が見つかる可能性があります)。

[構成] をクリックすると、 mspdb100.dll が見つからないというエラーが表示される場合があります\VC\bin (正しい方法ではありませんが...; Ogre のビルド プロセス中に「プログラム データベース マネージャーの不一致が表示されました」などのエラーが発生した場合、このファイルを後で削除する必要がある場合があります
)完了したら、[生成] をクリックして ogre.sln ファイルまたは「.dsw」ファイルを生成します。このファイルをクリックすると、ogre.sln ファイルが作成されます。詳細については、以下をご覧ください。
ノート:Cmake はキャッシュを維持します。いつでも cmake を再構成するには、キャッシュをクリアする必要があります。Cmake 2.8 には、メニューにキャッシュをクリアするオプションがあります。cmake 2.6.4 をインストールすると、ウィンドウ下部のボタンでキャッシュをクリアできるようになります。キャッシュをクリアすると、コンパイラを選択できるようになります。VS2006 を選択し、ネイティブ コンパイラのオプションは変更しませんでした。そのままにしておきました。
注 2: Visual C++ 2006 をインストールすると、C および C++ コンパイラは cmake のテスト ファイルをコンパイルできるようになりましたが、cmake は ogre_src_v1-7-3 の bin フォルダーにある特定の dll を見つけることができません。\tpcsed.com\projectshare\mapex\OGRE3D フォルダーを探していたので、bin フォルダーを \tpcsed.com\projectshare\mapex\OGRE3D フォルダーにコピーしました。その後、すべてがうまくいきました。

Visual Studio のバージョンが上記の構成を実現できない場合は、正しい c1.exe および rc.exe ファイルを指定できるように VS2006 をインストールする必要がある場合があります。VS2010 の c1.exe と rc.exe はうまくいきませんでした。

依存関係をコンパイルするには:
OgreDependencies_MSVC_20101231.zip を抽出します your-root\Ogre\ogre_src_v1-7-3\Dependencies\src に移動します OgreDependencies.VS2010.sln を VS2010 (または VS に対応する sln ファイル) で開きますデバッグおよびリリース用のソリューション (ソリューションを右クリック > プロパティ > 構成 > 構成マネージャー ボタン > アクティブなソリューション構成コンボボックス)

Ogre の構築:
your-root\Ogre\ogre_src_v1-7-3\bin\ogre.dsw ファイルをクリックし、使用している VS バージョンで開くことを確認します。私の場合は VS2010 でした (CMake で VS2006 を使用した場合は、ソリューションを VS のバージョンに変換する dsw ファイルがあります)
。ogre.sln ファイルが作成されます。ダブルクリックします。
ALL_BUILD プロジェクトを右クリックし、[ビルド] をクリックします。リリースとデバッグの両方でこれを行うことになっていますが、デバッグのためにそれを行うことで十分でした(当分の間)。
INSTALL プロジェクトを右クリックし、[ビルド] をクリックします。リリースとデバッグの両方でこれを行うことになっていますが、デバッグのためにそれを行うことで十分でした(当分の間)。
上記の 2 つの手順を実行するか、単に [クリーン] をクリックしてソリューション全体をビルドします。
エラーが見つかった場合は、ビルドが失敗したプロジェクトを検索し、エラーを読んで修正します。すべてのプロジェクトは、少なくともデバッグのために正常にビルドする必要があります。

ビルドが失敗した場合は、プロジェクトをクリーンアップして再ビルドします。または、cmake のステップからやり直してください。
ビルド エラーが発生した場合は、リストされているエラーを参照して、その原因を突き止めてください。システムに DirectX SDK をインストールしていないか、ogre.sln プロジェクトのプロパティでパスを正しく指定していない可能性があります。すべての値をチェックして、すべてのパスが正しいかどうかを確認します。
それでおしまい!

TBB、Boost などのオプションの依存関係。インストールしようとしませんでした。Ogre はそれがなくても機能します。

実行中:
小さな Ogre アプリを試します。実行できる最も単純なものは次のとおりです。

#include <Ogre.h>
//code is from http://blog.tidalware.com/2009/06/ogre-and-visual-studio-beginners-faq/
int main(int argc, char* argv[])
{
    Ogre::Root* root = new Ogre::Root("plugins.cfg", "ogre.cfg", "Ogre.log");
    delete root;
    return 0;
}

ソリューションを右クリックし、プログラムで使用したヘッダーへのインクルード パスを指定します。
設定プロパティ>一般>文字セットで「マルチバイト文字セットを使用する」に指定します。これにより、古い wchar typedef によるエラーが防止されます。
必要に応じて、リンカーに追加のライブラリ ディレクトリを指定します。Linker> Input に、Ogre の場合は「OgreMain_d.lib;OIS_d.lib」を追加し、OpenGL を使用している場合は「opengl32.lib;glu32.lib」を追加します。
その他の問題がある場合は、作業ディレクトリが出力ディレクトリと同じかどうかを確認してください。
それでおしまい!プログラムをビルドしてコンパイルする必要があります。

プログラムの実行中に発生する可能性のあるエラー: OgreMain_d.dll が見つからない場合は、Ogre soure ディレクトリで見つけて、プロジェクトの Debug ディレクトリに貼り付けます。移植性の理由から、Ogre の他の多くのリソース ファイルをプロジェクトの Debug ディレクトリにコピーする必要がある場合があります (プログラムに必要なファイルによって異なります)。

などの変数のパスを表示する$(TargetPath)には、任意のプロパティ値をクリックすると表示されるコンボボックスをクリックするだけで、小さなダイアログ ボックスが開きます。値/パスを表示するには、「Macros >>」をクリックしてクリックします。

OGRE_HOME Windows 環境変数を設定すると役立ちます。[マイ コンピューター] を右クリックし、[プロパティ] > [詳細設定] > [環境変数] > [システム変数] > [新規] をクリックします。
OGRE_HOME という名前の新しい環境変数を作成し、Ogre ソース フォルダー ogre_src_v1-7-3 へのパスである値を指定します。パスを指定するときはいつでも、VS でこの変数を使用できます。のように使えます$(OGRE_HOME)

さらに何かを行ったり、エラーが発生したりして解決策を見つけた場合は、このファイルにさらに情報を追加してください。

このビルドの間、私の同僚は多くのことを助けてくれました。ここから得たその他のヘルプ: http://blog.tidalware.com/2009/08/building-ogre-with-visual-studio/
およびここ: http://blog.tidalware.com/2009/06/ogre- and-visual-studio-beginners-faq/
および Ogre の公式 Web サイト。また、Google 検索で多くのヘルプが得られます。特にビルドエラーが発生した場合。

すべての最高の勇敢な開発者! :-)

于 2011-10-15T08:31:53.087 に答える