OpenGLのGLUT

Pocket

***本記事にはプロモーションが含まれています。***

GLUT(OpenGL Utility Toolkit)は、最近は開発が止まっていて、Fedora Core 4とかだとfreeglutがインストールされています。調べてみたのですが、MinGWで使う方法は、紹介されていました。が、プログラムをコンパイルするとSTDCALLが使われているという警告がでて、うまく解除する方法が見つかりませんでした。
それで、freeglutを試してみました。これも、コンパイルしてみるとundefined referenceというエラーが出てうまくコンパイルできません。結局、staticリンクのライブラリを作るようにして解決しました。
まず、freeglut-2.4.0を-DFREE_GLUT_STATICをつけてコンパイルします。作成したlibglut.aは、他のライブラリに合わせて、libglut32.aに名前を変えて使います。
freeglut-2.4.0$ CFLAGS="-O2 -g -DFREEGLUT_STATIC" ./configure
freeglut-2.4.0$ make -C src
freeglut-2.4.0$ mv /mingw/lib/libglut32.a /mingw/lib/libglut32.a.orig
freeglut-2.4.0$ cp src/.libs/libglut.a /mingw/lib/liblut32.a
freeglut-2.4.0$ cp include/GL/free* /mingw/include/GL
freeglut-2.4.0$ cp include/GL/glut.h /mingw/include/GL
使うときは、<GL/glut.h>の前に#define FREEGLUT_STATICを付けます。
#include <GL/gl.h>
#define FREEGLUT_STATIC
#include <GL/glut.h>
コンパイルは、次のオプションで行います。-lglut32の順序が重要で最初にないといけないみたいです。
gcc test.c -lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください