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