mingwで絶対にopenGLを動かす.

VisualStudioがそんなに嫌いなわけではないけど,あまりにも起動と終了が遅くて腹立たしいのでCUI環境を実装.

1.mingwを用意

http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/
ここ.表のちょっと上に

Looking for the latest version? Download mingw-get-inst-20110530.exe (574.8 KB)

の文言があるのでそっからDL.

2.mingwをインストール

落としてきたmingw-get-inst-20110530を起動.注意するのは以下.インストールするときのパッケージ選択みたいなやつで最初はCコンパイラだけになっているけどC++コンパイラもチェック. msysがどうのこうのもチェック.ほかのプログラミング言語コンパイラは無視していい.

3.まずmingw確認

inuneco@LENOVO-CF1F9C72 ~
$ gcc
gcc.exe: no input files


inuneco@LENOVO-CF1F9C72 ~
$ make
make: *** No targets specified and no makefile found. Stop.

4.freeglutを用意する.

openGLどうのこうのはもう考えなくていい.
http://www.transmissionzero.co.uk/software/freeglut-devel/

→freeglut 2.6.0 MinGW PackageをDL解凍

5.導入

C:\Documents and Settings\inuneco\デスクトップ\freeglut-MinGW-2.6.0-3.mp\freeglut\lib
にはいっている
libfreeglut.a
libfreeglut_static.a

C:\MinGW\libにコピー


C:\Documents and Settings\inuneco\デスクトップ\freeglut-MinGW-2.6.0-3.mp\freeglut\include
GLの中身全部を
C:\MinGW\includeに.既存なので上書きする


C:\Documents and Settings\inuneco\デスクトップ\freeglut-MinGW-2.6.0-3.mp\freeglut
freeglu.dllを
C:\WINDOWS\systemにコピー.
※C:\windows\systemが環境変数pathに含まれていることを確認すること.

6.動かす

sample.c (http://d.hatena.ne.jp/tana-laevatein/20091227/1261942906さんのコピーです.)

#include

void display () {
glClear (GL_COLOR_BUFFER_BIT);
glBegin (GL_LINE_LOOP);
glVertex2d (-0.9, -0.9);
glVertex2d (0.9, -0.9);
glVertex2d (0, 0.9);
glEnd ();
glFlush ();
}

void init () {
glClearColor (0.0, 1.0, 0.0, 1.0);
}

int main (int argc, char *argv[]) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_RGBA);
glutCreateWindow (argv[0]);
glutDisplayFunc (display);
init ();
glutMainLoop ();
return 0;
}

$gcc sample.c -o sample -lfreeglut -lglu32 -lopengl32
$sample.exe