Cygwin/Mingw32上でのOpenGL開発環境の構築

since 2000/04/18
last modified 2000/04/18

はじめに

さて、前回のMS-Windows上でのSDL開発環境の構築 により、MS-Windows上でフリーなプログラミング開発環境を手に入れることが出来ました。

そこで今回はさらに一歩進めて、OpenGL開発環境を構築してみましょう。

binary,sourceの入手

今回は、前回構築したCygwin/Mingw32をベースにOpenGL開発環境を構築します。

手順は、OpenGLライブラリに必要なgl.h, glu.hヘッダファイルを入手し、 任意の場所に格納するだけです。

ただ、glut開発環境までをも構築する、となると少し面倒です。ここでは、glut 開発環境の構築については説明しません。 そのため、glutに興味のある人は、以下に紹介する川地さんのWebpageを参考にして、 glut開発環境も構築してみて下さい。

(binary,sourceの入手先は、どこにあるか分かりにくいため、Toppageへのリンクと 直接リンクの二つです。しかし、binary,sourceへの直接リンクは Webpageの内容が変更される可能性が大きいので、切れることがあります)。

SGI's OpenGL SDK ヘッダファイルのインストール

SGI's OpenGL SDKは、ディレクトリ"c:\oglsdk"にインストールします (もちろん任意なディレクトリでもかまいませんが、以下はディレクトリ"c:\oglsdk" にインストールされているものとして述べます)。

  1. インストールプログラムに従って、SGI's OpenGL SDKをディレクトリ"c:\oglsdk" にインストールします。

  2. ディレクトリ"c:\oglsdk\include\gl"をディレクトリ "c:\usr\local\cross-tools\i386-mingw32\include"以下にコピーします。

libopengl32.a の作り直し

Cygwin B20.1付属のlibopengl32.aだと一部の関数 (glGenTexturesなど) が抜けています。 そのため、SGI's OpenGL SDK付属のopengl.lib を利用してlibopengl32.aを作り直します。

  1. ディレクトリ"c:\bin"のファイル"cygnus.bat"を起動し、コマンドプロンプトを 表示します。

  2. opengl.lib から opengl.def を生成します。
    cygwin User's guideの Linking Against DLLsを見ながら作業します。opengl.lib ファイルから シンボルを抜き出してopengl.def ファイルを作成。
    # cd /oglsdk/lib
    # echo EXPORTS > opengl.def
    # nm opengl.lib | grep 'T _' | sed 's/.* T _//' >> opengl.def

  3. 生成した opengl.def ファイルの情報を利用してlibopengl32.aファイルを作成。

  4. # dlltool --def opengl.def --dllname opengl32.dll --output-lib libopengl32.a --kill-at --add-stdcall-alias

  5. 作成したlibopengl32.aファイルをディレクトリ"c:\mingw32\i-386mingw32\lib" のものと差し替えます。

testツールのコンパイル

以上の手順でOpenGL開発環境の構築は完了しました。 それでは、前回のSDL開発環境の構築で使用しましたtestツールを 再度コンパイルして実行してみましょう (testツールはディレクトリ"c:\tmp\SDL-1.1.2\test"にあるとします)。

  1. このままでは、configureに失敗するので、 "c:\tmp\SDL-1.1.2\test\configure"ファイルを編集します。
    2325行付近の"#include <GL/gl.h>"の前行に"#include <windows.h>" を挿入します。

         #include <GL/gl.h>          (変更前 2325行付近)
    
         #include <windows.h>        (変更後 2325行付近)
         #include <GL/gl.h>
         
  2. コマンドプロンプトから、ディレクトリ"c:\tmp\SDL-1.1.2\test"に 移動して、testツールを再度コンパイルします。
    # make distclean
    # ./configure --host=linux-i386 --target=i386-mingw32
    # make testgl

  3. それでは、testglファイルを実行してみましょう。
    # ./testgl.exe
SDL OpenGL Tutorialsのコンパイル

今回は、新しくSDL OpenGL Tutorialsのソースコードをコンパイルして実行してみましょう (SDL OpenGL Tutorials"OpenGL-intro-1.0.0.tar.gz"はディレクトリ"c:\tmp"に 格納しているものとします)。

  1. コマンドプロンプトから、ディレクトリ"c:\tmp"に移動して、SDL OpenGL Tutorials "OpenGL-intro-1.0.0.tar.gz"を展開します。
    # cd /tmp
    # tar xzvf OpenGL-intro-1.0.0.tar.gz

  2. このままでは、configureに失敗するので、 "c:\tmp\OpenGL-intro-1.0.0\configure"ファイルを編集します。
    1400行付近の"#include <GL/gl.h>"の前行に"#include <windows.h>" を挿入します。

         #include <GL/gl.h>          (変更前 1400行付近)
    
         #include <windows.h>        (変更後 1400行付近)
         #include <GL/gl.h>
         
  3. コマンドプロンプトから、展開したディレクトリ"c:\tmp\OpenGL-intro-1.0.0"に 移動して、コンパイルします。
    # ./configure --host=linux-i386 --target=i386-mingw32
    # make

  4. それでは、lesson01から実行してみましょう。
    # ./lesson01.exe

[Top Pageに戻る]