どこでもノート

数学、物理、プログラムあたりの気になったことをゆるく

Mingw-w64でglutを使ってみた話

会社のPCにgcc環境(Mingw-w64)があるので、久しぶりにglutを使ってみようと思ったらリンクエラーで苦労した話です。

 

今時、freeglut(x86-64)ではなくてglut(GLUT for Win32)を選択したのは古いツールの方がネットで情報を得やすいだろうと思ったのと、作ろうと思っていたアプリが初歩的なことができれば十分だったため、別に新しい機能に興味がなかったためです

 

Mingw-w64はすでにインストール済みだったのでglutをインストール(glut.h glut32.lib glut32.dllを適切なフォルダに配置)しコンパイルしてみると

 

gcc -o test test.c -mwindows glut32.lib -lopengl32 -lglu32

C:Temp\ccjC3KZ3.o:test.c:(.text+0x28): undefined reference to `__imp___glutInitWithExit'

上記の類似のエラーが大量にでました。

 

glut32.libがうまくリンクできていないようで、ネットでいろいろ調べてみましたがしばらく解決できずに苦心していました。(同様のトラブルで困っている人の相談を何件も見つけましたが、それらの解決方法はfreeglutを使うことやcygwinなどで代わりの環境を用意することでした。)

 

私が抱えていた問題はWingw-w64をインストールし直すことで解決しました。

インストール時に選択できるArchitectureをx86_64ではなくi686を選択することで

リンクエラーは消え、ソフトは正常に動作しました。

 

その他に気を付けたことはヘッダファイルのインクルード順です

#include <windows.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>

 

glutの環境を整えただけですごい満足感ですよ、すでにやり切った感。

この記事がだれかの役に立ちますように。