2010年5月7日金曜日

CygwinでGLWindow

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

makefileが曲者で、Cygwin上で動かすためにはリンク時に-mno-cygwinというオプションが必要だということがわかった。
#makefile

VPATH = /usr/include/opengl
CPPFLAGS = -I /usr/include/opengl

libss := -lglut32 -lglu32 -lopengl32

main: main.o
main.o: main.cpp

%.o: %.cpp
$(COMPILE.cpp) $(OUTPUT_OPTION) $<

%: %.o
$(LINK.o) $^ -mno-cygwin $(libss) -o $@

.PHONY: clean
clean:
rm -f *.o *.exe
$(LINK.o)の行にある-mno-cygwinというオプションを指定することでリンカが-lglut32のリンク先を見つけてくれるようになります。これがないと-lglut32が見つかりませんというメッセージが出てリンクエラーとなる。

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

以下はソースコード。

#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>a

const char *APP_NAME = "GL Window on Emacs!!";

void Display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glutSwapBuffers();
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(500, 500);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);

    glutCreateWindow(APP_NAME);
    glutDisplayFunc(Display);

    glClearColor(1,1,1,0);
    glutMainLoop();

    return 0;
}
実行例

0 件のコメント:

コメントを投稿