next up previous
Next: 2.2 Cygwin と Windows Up: 2 コンパイルの仕方 Previous: 2 コンパイルの仕方

2.1 Cygwin の X11 に含まれている OpenGL で

例えば heat1d-e-glut.c をコンパイルするには、
gcc -finput-charset=cp932 -fexec-charset=cp932 -Wl,--enable-auto-import \
 -I/usr/X11R6/include -o heat1d heat1d-e-glut.c -L/usr/X11R6/lib -lglut	\
 -lGLU -lGL -lX11
とする。

次のようなスクリプトを用意しておけば、 ccgl heat1d-e-glut.c でコンパイル出来るわけです。
Cygwin での ccgl スクリプト
#!/bin/sh
name=`basename $1 .c`
gcc -finput-charset=cp932 -fexec-charset=cp932 -Wl,--enable-auto-import \
  -I/usr/X11R6/include -o ${name} "$@" \
  -L/usr/X11R6/lib -lglut -lGL -lGLU -lX11
(http://nalab.mind.meiji.ac.jp/~mk/labo/2008/ccgl)

インクルード・ファイルは /usr/X11R6/include/GL の下にあるので、 -I/usr/X11R6/include は必須。忘れると、リンクエラーになるのだ!!

-lX11 は外してもコンパイル出来てしまった。

-Wl,-enable-auto-import を忘れると、
Info: resolving _glutBitmapTimesRoman24 by linking to __imp__glutBitmapTimesRoman24 (auto-import)
のような警告が出る。

ライブラリィに関しては
mathpc% ls -l /usr/X11R6/lib/libGL.*
lrwxrwxrwx 1 mk なし 13 Jun 18  2007 /usr/X11R6/lib/libGL.dll.a -> libGL-1.dll.a
mathpc% ls -l /usr/X11R6/lib/libglut.*
-rw-r--r-- 1 mk なし 250984 Aug  6  2004 /usr/X11R6/lib/libglut.a
-rw-r--r-- 1 mk なし 128788 Aug  6  2004 /usr/X11R6/lib/libglut.dll.a
-rw-r--r-- 1 mk なし    813 Aug  6  2004 /usr/X11R6/lib/libglut.la
mathpc% 


next up previous
Next: 2.2 Cygwin と Windows Up: 2 コンパイルの仕方 Previous: 2 コンパイルの仕方
桂田 祐史
2015-04-17