OpenGLを利用してプログラミングするためには,必要なライブラリをインストールしなければなりません. Vine LinuxとWindows XPでの方法を紹介します. #contents * Vine Linux 3.xへのインストール [#cafa8629] LinuxではXに含まれるglライブラリを利用することができます. Vine Linux 3.xではXOrgに含まれているOpenGLライブラリを使用することができます. ** OpenGLライブラリのインストール [#laacf369] OpenGLライブラリは,apt-getで簡単にインストールすことができます.Vine Linux 3.xの場合, # apt-get install XOrg-libs XOrg-devel XOrg-gl-devel とすればインストール完了です. ** GLUTのインストール [#g2c0bc41] つぎに,GLUTをインストールします.これもaptで入手可能です.コンパイルには開発用のglut-develも必要になりますので,aptコマンドで # apt-get install glut glut-devel とすればインストール完了です.GLUTのライブラリは「/usr/lib」へ,ヘッダは「/usr/include/GL」へそれぞれインストールされます. ** GLUIのインストール [#v3ffbbc1] ボタンやボックスなどのGUI部品を提供するGLUIを使いたい場合は, GLUIをソースからコンパイルしてインストールします.作者のWebサイト - http://www.nigels.com/glt/glui/ からglui_v2_2.tgzもらってきて,適当なディレクトリに保存します.そして解凍します. $ tar zxvf glui_v2_2.tbz 解凍してできたディレクトリに移動して $ cd glui_v2_2 そこにbinとlibというディレクトリを作成します. $ mkdir bin $ mkdir lib そしてmakefileのつぎの部分を編集します. GLUTライブラリ,GLUTヘッダの場所,C++コンパイラを指定し直しています. GLUT_LIB_LOCATION=/usr/lib ← GLUTライブラリのある場所に GLUT_INC_LOCATION=/usr/include ← GLUTヘッダのある場所に ... #CC=CC -g0 -o32 ← コメントアウト ... CC=g++ -O3 ← コメント解除 GLUTヘッダのある場所が「/usr/include/GL」でなく「usr/include」になるのは, glut.hをインクルードするときにGL/glut.hと書くからです. makefileを編集したらいよいよコンパイルです. $ make コンパイルしているとき, example1.cpp:89: error: `main' must return `int' make: *** [example1.o] エラー 1 というエラーが出ると思います.これは,サンプルプログラムにて, main文の戻り値がintでないため起きるエラーです.ですので,すべてのサンプルプログラムの戻り値をvoidからintに変えておきます.そしてもう一度makeします. コンパイルが終わると,「libglui.a」というライブラリが,さきほど作ったlibディレクトリにできあがります. gluiを使ったプログラムをコンパイルできるように,このライブラリと,もとからglui_v2_2.zip含まれている「glui.h」を, GLUTのライブラリ,ヘッダのあるディレクトリにそれぞれコピーします.この作業はrootになって行います. $ su # cp lib/libglui.a /usr/lib # cp glui.h /usr/include/GL # exit make時にデモプログラムもコンパイルされます.さきほど作ったbinディレクトリに実行ファイルが5個できています.実行してみましょう. $ bin/example5 すると下のプログラムが立ち上がります. #ref(fig1.png,nolink) このボタンやボックスなどが GLUI によって提供される部品です.このようなGUI部品はウィジェットと呼ばれます. * Vine Linux 2.6へのインストール [#t26e42c3] Vine Linux 2.6ではXFree86に含まれるOpenGLライブラリを利用可能です.ライブラリのある場所が違うため,Vine Linux 3.xとは若干インストール方法が異なります. ** OpenGLライブラリのインストール [#f6e32e1e] apt-getでインストールできます.Vine Linux 2.6の場合, # apt-get install XFree86-gl XFree86-gl-devel とします. ** GLUTのインストール [#kb28170b] aptで入手可能です. # apt-get install glut glut-devel GLUTのライブラリは「/usr/X11R6/lib」へ,ヘッダは「/usr/X11R6/include/GL」へそれぞれインストールされます. ** GLUI のインストール [#u0fb91bb] Vine Linux 3.xでの場合とほぼ同じです.違うのはmakefileの編集部分です. GLUT_LIB_LOCATION=/usr/X11R6/lib ← GLUTライブラリのある場所に GLUT_INC_LOCATION=/usr/X11R6/include ← GLUTヘッダのある場所に ... #CC=CC -g0 -o32 ← コメントアウト ... CC=g++ -O3 ← コメント解除 あとは同様にコンパイル,コピーします. * 【注意】Mesaをインストールしていた場合 [#z69e8b0e] 少し前までOpenGLライブラリはXFree86-glに統合されておらず, Mesaという互換ライブラリを使うようになっていたと記憶しています.これもVine Plusにあってapt-getでインストールできますが, XFree86-glと一部のライブラリがかぶっていた気がします(あいまい). それで,一度Mesaをインストールしていると,うまくXFree86-glがインストールできなくなります.その場合はrpm -eコマンドでMesaをアンインストールするのですが,依存関係があるため--nodepsオプションを付けて無理矢理取り除きます. # rpm -e --nodeps Mesa Mesa-devel Mesa-common Mesa-common-devel これでaptからXFree86-glをインストールできるようになると思います. * プログラムのコンパイル方法 [#s2f75a96] プログラムをコンパイルするときには,「-lglut」や「-lglui」オプションを加えます. Vine Linux 3.xの環境で,プログラム中にGLUT関数しか使っていない場合は gcc foo.c -lglut -o foo だけでコンパイルできると思います.「GLUI」の関数も使っている場合には gcc foo.c -lglut -lglui -o foo などとします. ** Makefile [#b4f63136] 以上のようなオプションをいちいち入力するのは大変ですね.ソースファイルと同じディレクトリに「Makefile」という名前のファイルを作成し, CC = gcc LOADLIBES = -lglut -lglui foo: と書き込んで保存しておけば,コマンドラインから $ make とするだけでコンパイルできるので便利です. さらに,最適化(-02),警告をたくさん出す(-Wall),数学関数(-lm)オプションを加えると, CC = gcc CFLAGS = -O2 -Wall LOADLIBES = -lm -lglut -lglui foo: というMakefileになります.最後の行を,コンパイルしたいファイル名に置き換えてください. * 【付録】Windows XPへのインストール [#j5ffa51d] Visual C++がC:\Program Filesにインストールされている環境での説明をします.Windows用のGLUTは - http://www.xmission.com/~nate/glut.html から手に入ります.ソースファイルとコンパイル済のバイナリファイルが用意されています.バイナリファイルをとってくるのが手っ取り早いでしょう. - glut-3.7.6-bin.zip (117 KB) をダウンロードします.GLUTのインストールは簡単で, zipファイルを解凍して出てくる - glut32.dll - glut32.lib - glut.h をそれぞれ適切なフォルダへコピーするだけです. - glut32.dll は C:\WINDOWS\system32 へ - glut32.lib は C:\Program Files\Microsoft Visual Studio\VC98\Lib へ - glut.h は C:\Program Files\Microsoft Visual Studio\VC98\Include\GL へ それぞれコピーします.あとはいつも Visual C++ を使うときと同じように GLUT を使って書いたソースを コンパイル,ビルド,実行できます.