1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenGL環境構築【GLFW/GLAD導入~ウィンドウ表示まで】

1
Last updated at Posted at 2026-05-16

【この記事の目標】GLFW/GLADを使用してOpenGLウィンドウを表示する

スクリーンショット (101).png

【動作環境】

・Windows 11
・VisualStudio 2022
・OpenGL 4.6
・GLFW 3.4
・GLAD

【目次】

1. プロジェクト作成
2. GLFW導入
3. GLAD導入
4. VisualStudioのプロパティ設定
5. ウィンドウ表示

1. プロジェクト作成

VisualStudioで空のプロジェクトを作成

スクリーンショット (39).png

プロジェクト名はGLAppとしました
スクリーンショット (40).png

2. GLFW導入

下記のサイトからソースファイルをダウンロード

Source packageをクリックしてソースファイルをダウンロードします
スクリーンショット (2).png

glfw-3.4 - エクスプローラー 2026_05_11 21_58_03.png

GLFWのソースファイル一覧
glfw-3.4 - エクスプローラー 2026_05_11 21_55_27.png

CMake導入

※既にCMake導入済みの場合は次の手順に進んでください。

開発環境内でGLFWを使用するにはGLFWライブラリ(glfw3.lib)を用意する必要があります。glfw3.libはGLFWのソースコードをビルドすることで生成されますが、ダウンロード直後の今のままの状態ではVisualStudioの.sln.vcxprojがないためビルドできません。
そこで、CMakeを導入します。CMakeを使うことでGLFWのCMakeLists.txtからVisualStudio用のソリューションファイルとプロジェクトファイルを自動生成でき、これによりGLFWがビルド可能な状態となります。

下記のサイトからCMakeをダウンロード

スクリーンショット (4).png

少し下にスクロールして一覧からパッケージをダウンロード
スクリーンショット (7).png

起動すると以下の画面が表示されます
スクリーンショット (15).png

スクリーンショット (9).png

スクリーンショット (10).png

スクリーンショット (11).png

スクリーンショット (12).png

スクリーンショット (15).png
これでCMakeのインストールが完了しました。

CMakeでGLFWのソリューション生成

CMakeを実行する前に実行結果を保存するフォルダ作成しておきます
スクリーンショット (18).png

CMake起動
スクリーンショット (17).png

Where is the soucre code:手順1でダウンロードしたglfw-3.4フォルダを指定
Where is build the binaries:ひとつ前の手順で作成したbuildフォルダを指定
スクリーンショット (19).png

ConigureボタンをクリックするとVisualStudioのバージョンを聞かれる。
バージョン2022を選択し、FinishボタンをクリックするとConfigureがスタートする。
スクリーンショット (21).png

Configure完了
続けてGenerateボタンをクリックしGenerate開始
スクリーンショット (28).png

Generate完了
スクリーンショット (29).png

先ほど作成したbuildフォルダにGLFWのソリューションが生成されていればOKです
スクリーンショット (30).png

GLFWライブラリ生成

生成されたGLFW.slnを開きそのままビルド実行
スクリーンショット (32).png

~build\src\Debug直下にGLFWライブラリglfw3.libが生成されていればOK
スクリーンショット (35).png

ついでに~include\GLFWにヘッダファイルがあることを確認
GLFW - エクスプローラー 2026_05_13 21_41_35.png

3. GLAD導入

下記のサイトからソースファイルをダウンロード

↓の設定を選択※glのバージョンは4.6以上でも問題ないです
スクリーンショット (58).png

少し下にスクロールしてOptions>Generate a Loaderにチェックを入れてGenerateをクリック
スクリーンショット (59).png

glad.zipまたはinclude/srcフォルダをダウンロードしてください
スクリーンショット (60).png
includeフォルダの中身
include - エクスプローラー 2026_05_13 21_48_19.png
srcフォルダの中身
Screenshot 2026_05_13 21_49_37.png

4. VisualStudioのプロパティ設定

これまでの手順で用意したGLFW/GLADをVisualStudio側に認識させて使えるようにします。
まず初めにincludelibの2つの空フォルダを作成しここに用意したGLFWとGLADのファイルをコピーします。
※私の場合はCドライブ直下にOpenGLフォルダを作成していますが場所はどこでも良いです。
スクリーンショット (37).png

includeフォルダとlibフォルダに手順2,3で用意したファイルをコピーします。
includeglfw-3.4\include\GLFWglad\include\glad・KHR
Screenshot 2026_05_13 22_21_40.png
libglfw-3.4\build\src\Debug\glfw3.lib
Screenshot 2026_05_13 22_31_20.png

手順1で作成したプロジェクトを開き、main関数を記述するcppファイルを新規作成します。私の場合はファイル名をGLMain.cppとしました。
スクリーンショット (83).png
スクリーンショット (85).png

次にプロジェクトのプロパティを開き、以下の3つの項目を設定します。
①C/C++>全般>追加のインクルードディレクトリ
②リンカー>全般>追加のライブラリディレクトリ
③リンカー>入力>追加の依存ファイル
 
①C/C++>全般>追加のインクルードディレクトリ
スクリーンショット (66).png

①C/C++>全般>追加のインクルードディレクトリ
スクリーンショット (70).png
スクリーンショット (73).png

1つ前の手順で作成したincludeフォルダを指定しOK→適用
スクリーンショット (74).png
スクリーンショット (75).png

②リンカー>全般>追加のライブラリディレクトリ
インクルードディレクトリと同様にlibディレクトリを指定
スクリーンショット (76).png
スクリーンショット (77).png

③リンカー>入力>追加の依存ファイル
スクリーンショット (78).png
追加の依存ファイルの項目には
glfw3.libopengl32.libを指定します。opengl32.libはデフォルトでWindows環境に備わっています。
スクリーンショット (81).png
スクリーンショット (82).png
適用→OKでプロパティ設定は完了です。

最後に手順3でダウンロードしたglad.cをプロジェクトに追加します。

OpenGLは実行環境によって使用できる機能が異なるため、どのバージョンを対象とするか、どの言語を使うかなどの仕様を事前に決める必要があります(実は手順3https://glad.dav1d.de/ で行った設定はこの仕様決めのことでした)。
GLADはOpenGLの関数を使えるようにするためのローダーであり、ダウンロードしたglad.c/hはその仕様に基づいて生成されたソースコードです。
そのため、glfw3.libのように汎用的なコンパイル済みライブラリとして配布するのではなく必要に応じて個別にソースコードとして生成し自分の手でコンパイルする必要があります。

スクリーンショット (88).png
スクリーンショット (90).png
スクリーンショット (91).png

5. ウィンドウ表示

最後に以下のソースコードを貼り付けて黒いウィンドウが表示されればOKです。

GLMain.cpp
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>

int main() 
{
	// GLFW初期化
	if (!glfwInit()) {
		std::cout << "Failed to initialize GLFW" << std::endl;
		return -1;
	}

	// ウィンドウ作成
	GLFWwindow* window = glfwCreateWindow(800, 600, "GLApp", nullptr, nullptr);
	if (!window) {
		std::cout << "Failed to create GLApp window" << std::endl;
		glfwTerminate();
		return -1;
	}
	// 作成したウィンドウのOpenGLコンテキストを有効化
	// 以降の描画操作はこのウィンドウのコンテキストに対して行われる
	glfwMakeContextCurrent(window);
	
	// GLAD初期化
	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
		std::cout << "Failed to initialize GLAD" << std::endl;
		return -1;
	}
	
	// メインループ
	while (!glfwWindowShouldClose(window)) {
		// 画面クリア
		glClear(GL_COLOR_BUFFER_BIT);
		// バッファの入れ替え
		glfwSwapBuffers(window);
		// マウスやキーボードなどのイベント処理
		// これがないとウィンドウが応答しなくなる
		glfwPollEvents();
	}

	// 作成したウィンドウを破棄
	glfwDestroyWindow(window);
	// GLFWライブラリを終了
	glfwTerminate();
	return 0;
}

実行結果

スクリーンショット (93).png

標準のコンソールウィンドウも一緒に出てきてしまってるのでこっちは非表示にします。
プロジェクトのプロパティを開き以下2つの設定を変更します。
①リンカー>システム>サブシステム
②リンカー>詳細設定>エントリポイント
 
①リンカー>システム>サブシステム
スクリーンショット (99).png
コンソール→Windowsに変更します
スクリーンショット (95).png

②リンカー>詳細設定>エントリポイント
スクリーンショット (96).png

mainCRTStartupを設定しOK
スクリーンショット (97).png

再度実行するとOpenGLウィンドウだけが表示されるようになりました。
スクリーンショット (100).png

これで完了です!お疲れ様でした(;'∀')
最後まで読んでいただきありがとうございました(∩´∀`)∩

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?