2010年5月7日金曜日

CygwinでGLWindow

ようやくCygwin+EmacsでOpenGL開発ができるようになってきた。

makefileが曲者で、Cygwin上で動かすためにはリンク時に-mno-cygwinというオプションが必要だということがわかった。
01#makefile
02 
03VPATH = /usr/include/opengl
04CPPFLAGS = -I /usr/include/opengl
05 
06libss := -lglut32 -lglu32 -lopengl32
07 
08main: main.o
09main.o: main.cpp
10 
11%.o: %.cpp
12$(COMPILE.cpp) $(OUTPUT_OPTION) $<
13 
14%: %.o
15$(LINK.o) $^ -mno-cygwin $(libss) -o $@
16 
17.PHONY: clean
18clean:
19rm -f *.o *.exe
$(LINK.o)の行にある-mno-cygwinというオプションを指定することでリンカが-lglut32のリンク先を見つけてくれるようになります。これがないと-lglut32が見つかりませんというメッセージが出てリンクエラーとなる。

makefileについては調べながら勉強中みたいなものなので、ひどい書き方になってるかもしれませんがご容赦ください:-)

以下はソースコード。

01#include <stdio.h>
02#include <stdlib.h>
03#include <GL/glut.h>a
04 
05const char *APP_NAME = "GL Window on Emacs!!";
06 
07void Display()
08{
09    glClear(GL_COLOR_BUFFER_BIT);
10    glutSwapBuffers();
11}
12 
13int main(int argc, char** argv)
14{
15    glutInit(&argc, argv);
16    glutInitWindowPosition(100, 100);
17    glutInitWindowSize(500, 500);
18    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
19 
20    glutCreateWindow(APP_NAME);
21    glutDisplayFunc(Display);
22 
23    glClearColor(1,1,1,0);
24    glutMainLoop();
25 
26    return 0;
27}
実行例

0 件のコメント:

コメントを投稿