WindowsにMinGWをインストールしてGCCでGLUT(freeglut)を使ってみたのでその記録をメモしておきます。 BorlandのBCCを使ってもできるようですが、今回はGCCを使いたかったのでGCCを使う場合についてのメモです。
インストール手順
MSYS2からMinGWをインストールし、MinGW+MSYS2の環境を構築します。Cygwinをインストールしても一発でできるようです。
MinGWはWindows用のGNUのツールチェイン群で、MSYS2はCygwinからフォークされたPOSIX互換レイヤーのようです((日記/2017/10/09/MSYS2,MinGW64,Cygwinの違い - Glamenv-Septzen.net
https://www.glamenv-septzen.net/view/1422))。MinGWで作成したexeは単体で実行できる形式にできますが、MSYS2やCygwinで作成したexeはmsys-2.0.dllに依存するようです。
MinGWのgccとfreeglutをインストールするにはMSYS2を使ってパッケージ指定するのが楽なようなのでとりあえずMSYS2をインストールします。
以下のサイトがとてもわかりやすかったです。
デフォルトでは"C:\msys64"にインストールされるようです。今回はデフォルト設定で進めました。
この方法ではcmd.exeでUNIXコマンドを実行してもパスを通さない限り対応しません。
MSYS2からインストールするパッケージは以下の3つです。
- mingw-w64-x86_64-gcc
- mingw-w64-x86_64-gcc-libs
- mingw-w64-x86_64-freeglut
MSYS2のパッケージマネージャはpacmanなので、"C:\msys64\mingw64_shell.bat"を実行して次のコマンドでインストールできます。
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-freeglutコンパイルテスト
インストール後、GLUTを利用したサンプルを書きます。
#include <stdlib.h>#include <GL/glut.h>
void keyboard(unsigned char key, int x, int y);void display(void);
int main(int argc, char** argv){ glutInit(&argc, argv); glutCreateWindow("GLUT Test"); glutKeyboardFunc(&keyboard); glutDisplayFunc(&display); glutMainLoop();
return EXIT_SUCCESS;}
void keyboard(unsigned char key, int x, int y){ switch (key) { case '\x1B': exit(EXIT_SUCCESS); break; }}
void display(){ glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_POLYGON); glVertex2f(-0.5f, -0.5f); glVertex2f( 0.5f, -0.5f); glVertex2f( 0.5f, 0.5f); glVertex2f(-0.5f, 0.5f); glEnd();
glFlush();}Using freeglut or GLUT with MinGWより引用
この後opengl32とfreeglutを指定して実行すると無事にコンパイルできました。
g++ sample1.c -lopengl32 -lfreeglut && ./a.exe遭遇したエラー
error: spawn: No such file or directory- MinGW64なのにMinGW32のライブラリやgccを指定しているときにこのエラーが出ました。
undefined reference to `__imp___glutInitWithExit'- 未定義の参照があるようです。ライブラリをきちんと指定しているか確認してみてください。
fatal error: GL/glut.h: No such file or directory- ライブラリがインストールされていないようです。
更新履歴
2019年6月9日 カテゴリを変更しました。
関連記事
- Git for Windowsのお勧めインストール手順Git for Windowsはインストール時に選択する項目が多数あります。Windowsユーザが「Gitをインストールしておいてください」とだけ言われてインストール方法がよくわからなかったときに参考になるよう、あるいはWindowsユーザに「Gitをインストールしておいてください」と伝えるときに参考URLとして共有で
- Raspberry Pi 3(Raspbian)をディスプレイなしでセットアップする方法[Windows][Etcher]Raspberry Pi 3にRaspbianをインストールし、HDMIディスプレイ、キーボード、マウスなしでセットアップする方法を紹介します。PCからSSHでログインできるように設定します。 作業する際に使用するPCのOSはWindowsです。今回は前回よりもmicroSDへの書き込みに便利なソフトウェアを紹介します
- (Updated )Raspberry Pi 3(Raspbian)をディスプレイなしでセットアップする方法[Windows][DDWin]Raspberry Pi 3にRaspbianをインストールし、HDMIディスプレイ、キーボード、マウスなしでセットアップする方法を紹介します。PCからSSHでログインできるように設定します。 作業する際に使用するPCのOSはWindowsです。Macを使う場合については別のエントリで書こうと思います。
- (Updated )ネットワーク共有したRaspberry Pi 3にSSH接続する方法[Windows]ネットワーク共有したRaspberry Pi 3(セットアップ済み)にSSH接続する方法を紹介します。
- (Updated )SW4STM32でmbedプロジェクトをコンパイルする方法(Windows)System Workbench for STM32(SW4STM32)でmbedプロジェクトをコンパイルする方法のメモ。



