Windows で glm の導入とビルド
【概要】
glm(OpenGL Mathematics)とは,OpenGL のシェーディング言語(GLSL)の仕様に準じた,ヘッダオンリーの C++ 数学ライブラリである(ソースコードをコンパイルせず,ヘッダファイルをインクルードするだけで使える)。行列・ベクトル演算などの機能を持ち,C++ プログラムに組み込んで使うのに便利である(ライセンス条項は各自で確認のこと。glm は Happy Bunny License(改変 MIT ライセンス)または MIT ライセンスのいずれかで配布されている)。- Windows を使う。
- パッケージ管理には vcpkg を用いる。
【目次】
前準備
次のソフトウェアをインストール済みであること。
- Visual Studio(Desktop development with C++ ワークロードを含む,2026 年時点の最新の安定版)
- Git
- CMake(Visual Studio に同梱のものでよい)
vcpkg のインストール
コマンドプロンプトで次のコマンドを実行し,vcpkg を取得してブートストラップする。
cd \ git clone https://github.com/microsoft/vcpkg cd vcpkg bootstrap-vcpkg.bat
続けて,Visual Studio と連携させるため,次のコマンドを実行する。
vcpkg integrate install
vcpkg を用いた glm のインストール
cd \vcpkg vcpkg install glm --triplet x64-windows
CMake プロジェクトから使う場合は,CMakeLists.txt に次のように記述する。
find_package(glm CONFIG REQUIRED) target_link_libraries(main PRIVATE glm::glm)
CMake の実行時には,ツールチェインファイルを指定する。
cmake -B build -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake cmake --build build
(オプション)simage のインストール
simage とは,各種の画像ファイル形式を統一的に扱うためのライブラリである。
cd \vcpkg vcpkg install simage --triplet x64-windows
なお,simage は必須ではない。
(オプション)DevIL のインストール
DevIL とは,各種の画像を読み込み,保存,変換,操作,フィルタ,表示できるライブラリである。
cd \vcpkg vcpkg install devil --triplet x64-windows
サンプルプログラムのビルドと実行
glm はヘッダオンリーライブラリであるため,OBJ 形式ファイルを読み込んで表示する独自のビューワープログラムを作成し,ビルドする例を示す。ビューワーの実装には,OpenGL の初期化とウィンドウ生成に GLFW を,OBJ ファイルの読み込みには任意の OBJ ローダーを組み合わせる。
- 依存ライブラリのインストール
cd \vcpkg vcpkg install glm glfw3 --triplet x64-windows
- CMakeLists.txt の作成
作業用ディレクトリ(このページでは C:\work\glmviewer とする)に,次の内容の CMakeLists.txt を作成する。
cmake_minimum_required(VERSION 3.11) project(glmviewer) find_package(glm CONFIG REQUIRED) find_package(glfw3 CONFIG REQUIRED) add_executable(glmviewer main.cpp) target_link_libraries(glmviewer PRIVATE glm::glm glfw3::glfw3)
- ビルド
cd \work\glmviewer cmake -B build -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake cmake --build build --config Release
- 実行
ビルドが終わると,build\Release フォルダに glmviewer.exe が生成される。コマンドプロンプトで次のように実行し,OBJ ファイルを指定する。
cd build\Release glmviewer.exe model.obj