mieki256's diary



2022/09/14(水) [n年前の日記]

#1 [prog] MinGWでGLFWを使えるように環境を整えた

OpenGLを勉強するにあたって、GLFW というライブラリが使えると便利らしいという話を見かけたので、MinGW (gcc 9.2.0) で GLFW を使ったC/C++ソースがコンパイルできるように GLFW をインストールしてみた。

環境は、Windows10 x64 21H2。

GLFWバイナリの入手とインストール。 :

以下からバイナリを入手。

_Download | GLFW

Windows pre-compiled binaries のところから、glfw-3.3.8.bin.WIN32.zip をダウンロードする。MinGW は32bit版なので、GLFW も32bit版を入手すればいいのだろう。たぶん。

glfw-3.3.8.bin.WIN32.zip を解凍すると、include\ や lib-mingw\ が入っていた。
  • include\ を、MinGWインストールフォルダ\include\ にコピー。
  • lib-mingw\*.a を、MinGWインストールフォルダ\lib\ にコピー。
  • lib-mingw\*.dll を、MinGWインストールフォルダ\bin\ にコピー。

GLEWもインストール。 :

GLEWというライブラリも必要になりそうなのでインストールしておく。

_GLEW: The OpenGL Extension Wrangler Library

glew-2.1.0-win32.zip を入手。

解凍すると、bin/、include/、lib/ と、お決まりのフォルダが見えるので、中身をそれぞれ、MinGWインストールフォルダ内にコピー、しようとしたけど、lib/ がちょっとアレだな…。たぶんコレ、Visual C++用なのではないかな…。

_MinGWでglewを入れる. - 考えるということ

上記ページによると、MinGW の場合もそのままコピーして構わないという話があるみたいなので、自分もそのようにしてみる。まあ、問題が出たらその時対処しよう…。たしか、*.lib を *.a に変換するツールがあったような気がするので、その時はそういうツールが使えないか試すことになるんじゃないかな…。

サンプルソースをコンパイル。 :

以下で紹介されてるサンプルソースをコンパイルできるか試してみる。

_Documentation | GLFW

_01_hello_glfw.c
#include <GLFW/glfw3.h>

int main(void)
{
  GLFWwindow* window;

  /* Initialize the library */
  if (!glfwInit())
    return -1;

  /* Create a windowed mode window and its OpenGL context */
  window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
  if (!window)
    {
      glfwTerminate();
      return -1;
    }

  /* Make the window's context current */
  glfwMakeContextCurrent(window);

  /* Loop until the user closes the window */
  while (!glfwWindowShouldClose(window))
    {
      /* Render here */
      glClear(GL_COLOR_BUFFER_BIT);

      /* Swap front and back buffers */
      glfwSwapBuffers(window);

      /* Poll for and process events */
      glfwPollEvents();
    }

  glfwTerminate();
  return 0;
}

以下でコンパイル。

_Makefile
gcc 01_hello_glfw.c -o 01_hello_glfw.exe -static -lglfw3 -lopengl32 -lwinmm -lgdi32 -mwindows

01_hello_glfw.exe が生成された。実行すると、真っ暗なウインドウが表示された。コンパイルできたのではないかな…。たぶん。

MSYS2 + MinGW-w64 の場合。 :

MSYS2 + MinGW-w64 (gcc 12.2.0) の場合、GLFWも、GLEWも、パッケージが用意されている。

_Base Package: mingw-w64-glew - MSYS2 Packages
_Base Package: mingw-w64-glfw - MSYS2 Packages

64bit版、もしくは 32bit版のインストールは以下。
pacman -S mingw-w64-x86_64-glfw mingw-w64-x86_64-glew 
pacman -S mingw-w64-i686-glfw mingw-w64-i686-glew

前述のサンプルソースもコンパイルできた。

参考ページ。 :


以上です。

過去ログ表示

Prev - 2022/09 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project