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 件のコメント:
コメントを投稿