グラフィックス(SDL + OpenGL, OpenSceneGraph)

OpenSceneGraphをソースコードからコンパイルする/VC6

最終更新: 2015-04-20 (月) 08:44:45 (1584d)

OpenSceneGraphをソースコードからコンパイルする

本ページが想定する OpenSceneGraph のライブラリのバージョンを以下に示す。

ライブラリのバージョンソースコードの日付
OpenSceneGraph 0.9.82004/12/02


STLport のセットアップ

STLport とは、STL(Standard Template Library) の実装の一つ。 VC6 が標準で持っている STL の実装は、Dinkamware のものである。 Dinkamware の STL には、少々問題があり、 OpenSceneGraph では Dinkamware の STL の代わりに STLport を使ってコンパイルする *1

STLport のセットアップには、以下の手順を実行する。

  • 以下のサイトで STLport をダウンロードする。
  • ダウンロードした圧縮ファイルを好みのディレクトリに解凍する。
  • Visual Studio を起動する。
  • プルダウンメニューのツールオプションディレクトリインクルードディレクトリ/ライブラリディレクトリに以下のディレクトリを追加する。
追加先追加ディレクトリ
インクルードファイル<STLport ディレクトリ>/stlport
  • 追加した以上のライブラリの優先度を最大にする。以下のスクリーンショットを参考。
STLport のセットアップ

依存ライブラリのセットアップ

OpenSceneGraph をコンパイルするためには、 いくつかのライブラリが必要である。 必要なライブラリ群を以下の表に示す。

セットアップするライブラリ名ダウンロードURLバージョンインストーラの有無
Tiff for Windowshttp://gnuwin32.sourceforge.net/packages/tiff.htm3.6.1有り
Jpeg for Windowshttp://gnuwin32.sourceforge.net/packages/jpeg.htm6b有り
LibUnGif for Windowshttp://gnuwin32.sourceforge.net/packages/libungif.htm4.1.0b1無し
LibPng for Windowshttp://gnuwin32.sourceforge.net/packages/libpng.htm1.2.8有り
Zlib for Windowshttp://gnuwin32.sourceforge.net/packages/zlib.htm1.2.2有り
FreeType for Windowshttp://gnuwin32.sourceforge.net/packages/freetype.htm2.1.8有り
GDALhttp://www.remotesensing.org/gdal/download.html1.2.5無し

インストーラが有るものは、インストーラを使ってインストールして構わない。 インストーラが無い LibUnGif for Windows 及び GDAL に関しては、以下にそのインストールの仕方を後述する。

GDAL をインストールする

ソースコード(gdal125.zip)をダウンロード後、好みのディレクトリに解凍する。 解凍後、以下の手順を実行する。

  • スタートアクセサリコマンド プロンプト
  • cd <GDAL ディレクトリ>
  • vcvars32
  • nmake -f makefile.vc

LibUnGif をインストールする

  • Developer files をダウンロードする。解凍し、lib ディレクトリ の中身を <GnuWin32 ディレクトリ>/lib にコピーする。
  • Sources をダウンロードする。解凍し、src/lib ディレクトリgif_lib.h<GnuWin32 ディレクトリ>/include にコピーする。

VC++ の設定

以上のライブラリを全てインストールしたら、 ライブラリのインクルードファイル/ライブラリファイルを Visual Studio が参照できるように設定する。

  • プルダウンメニューのツールオプションProjectsVC++ ディレクトリ に以下のディレクトリを追加する。
追加先追加ディレクトリ
インクルードファイル<GnuWin32 ディレクトリ>/include
インクルードファイル<GnuWin32 ディレクトリ>/include/freetype2
ライブラリファイル<GnuWin32 ディレクトリ>/lib
インクルードファイル<GDAL ディレクトリ>/alg
インクルードファイル<GDAL ディレクトリ>/gcode
インクルードファイル<GDAL ディレクトリ>/ogr
インクルードファイル<GDAL ディレクトリ>/port
ライブラリファイル<GDAL ディレクトリ>

ソースコードをコンパイルする

解凍したソースコードには OpenSceneGraph OpenThreads Producer の3つのディレクトリが存在する。 OpenThreads と Producer は、OpenSceneGraph をコンパイルするために必要なライブラリである。 これらのライブラリ間には依存関係があり、以下の順番でコンパイルしなければならない。

順序コンパイル対象プロジェクトファイル
1OpenThreads<OpenSceneGraph ディレクトリ>/OpenThreads/win32_src/OpenThreads.dsw
2Producer<OpenSceneGraph ディレクトリ>/Producer/VC++6.0/Producer.dsw
3OpenSceneGraph<OpenSceneGraph ディレクトリ>/OpenSceneGraph/VisualStudio/VisualStudio.dsw

本来は問題なくコンパイルできるのだろうが、開発発展途上にあるためか、以下のような不具合が発生した。

  • コンパイル時の不具合
    • osgPlugin freetype
      • リンクライブラリ freetype.liblibfreetype.lib に修正した。
    • osgPlugin net
      • 対応方法不明。
    • osgPlugin png
      • zconf.h の281行目の #if 1#if 0 に修正した。
      • リンクライブラリ zlibstat.liblibz.lib に修正した。

VC++ のセットアップ

次に Visual Studio をセットアップして OpenSceneGraph を使えるように設定する。 インストールした3つのライブラリには、 それぞれ include/lib というディレクトリが存在する。 このディレクトリには、 それぞれインクルードファイル/ライブラリファイルが入っている。 Visual Studio が、これらのファイルを参照できるように設定する。

  • プルダウンメニューのツールオプションProjectsVC++ ディレクトリ に以下のディレクトリを追加する。
追加先追加ディレクトリ
インクルードファイル<OpenSceneGraph インストールディレクトリ>/OpenSceneGraph/include
インクルードファイル<OpenSceneGraph インストールディレクトリ>/OpenThreads/include
インクルードファイル<OpenSceneGraph インストールディレクトリ>/Producer/include
ライブラリファイル<OpenSceneGraph インストールディレクトリ>/OpenSceneGraph/lib
ライブラリファイル<OpenSceneGraph インストールディレクトリ>/OpenThreads/lib
ライブラリファイル<OpenSceneGraph インストールディレクトリ>/Producer/lib

以上。