Windows ビルドガイド(Windows 固有の差分)
作成日: 2026-06-10 / 更新日: 2026-06-10
共通手順(リポジトリ clone / SDL2 ソース取得 / CMake の基本 / 共通ハマり)は ビルドガイド共通 を参照。本書は Windows 固有の差分のみを記載する。
概要
Windows (x64) でネイティブエンジンをビルドし、ウィンドウに背景・立ち絵・日本語テキスト(VRM も)が表示される状態まで持っていく手順。MSVC + Ninja でビルドし、SDL2 は**ソースから SHARED ライブラリ(*.dll)**としてビルドする。OpenGL 3.3 Core は GLAD 極小ローダ経由で取得する。Windows 固有差分は main.cpp / GLRenderer.cpp の #ifdef _WIN32 に閉じており、他プラットフォームのビルドには影響しない。
前提条件
| ツール | バージョン | 備考 |
|---|---|---|
| Windows | 10 / 11 (x64) | — |
| Visual Studio | 2019 / 2022 / 2026(C++ ワークロード) | MSVC VC.Tools.x86.x64。Build Tools 単体でも可 |
| CMake | 3.30+ | システムインストール(PATH に通す) |
| Ninja | VS 同梱を自動使用 | Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe |
| PowerShell | 7+ (pwsh) | ビルドスクリプト実行に使用 |
Ninja と MSVC 環境(
vcvars64.bat)の探索・読込はビルドスクリプトがvswhere.exe経由で自動化する。手動で Developer Command Prompt を開く必要はない。
Step 1: SDL2 ソースの取得
共通ガイド Step 2 のとおり。Windows は PowerShell 版を使う(ビルドスクリプトが未取得時に自動実行もする)。
pwsh -File scripts/build/download-sdl2-sources.ps1
Step 2: ビルド
ビルドは専用の PowerShell スクリプト 1 本で完結する(MSVC 環境の読込・CMake configure・ビルドを内部で実行)。
# リポジトリルートから(既定は Release)
pwsh -File packages/native-engine/windows/build-windows.ps1
# デバッグビルド(コンソールに SDL_Log / printf が出る)
pwsh -File packages/native-engine/windows/build-windows.ps1 -BuildType Debug
# クリーンビルド
pwsh -File packages/native-engine/windows/build-windows.ps1 -Clean
-BuildType は Debug / Release / RelWithDebInfo。スクリプトの内部処理:
external/SDL2-2.30.12が無ければdownload-sdl2-sources.ps1を実行vswhere.exeで Visual Studio を検出 →vcvars64.batで MSVC x64 環境を import(cl.exeを PATH に乗せる)- VS 同梱 Ninja を選択(無ければ PATH の
ninja) cmake -G Ninja -S packages/native-engine/windows -B .../build -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=clcmake --build ... --parallel
Windows のビルド定義は
packages/native-engine/windows/CMakeLists.txt(macOS/iOS/Android とは別ファイルで同等の配線を持つ)。
ビルド出力
packages/native-engine/windows/build/
├── kaedevn_native.exe # メインバイナリ(Release は WIN32 サブシステム=コンソール無し)
├── SDL2.dll / SDL2_image.dll / SDL2_ttf.dll / SDL2_mixer.dll
└── (+ vendored 音声 DLL。計 8 個が exe と同じ場所にコピーされる)
DLL は POST_BUILD で exe と同じディレクトリにコピーされる。Windows の DLL 検索順は exe 同梱が最優先のため、PATH 設定なしで起動できる。
Step 3: 実行
& packages\native-engine\windows\build\kaedevn_native.exe
ウィンドウが開き、背景・立ち絵・日本語テキストが表示される。VRM(Filament バックエンド)も描画される。
Windows 固有のハマりポイント
1. OpenGL 3.3 の関数が未定義(GLAD ローダ)
Windows は OS 標準で OpenGL 1.1 のヘッダ/エクスポートしか持たない。GLRenderer.cpp が使う GL 1.2+ の関数(37 個)は、external/glad/ の手書き極小ローダが SDL_GL_GetProcAddress 経由で実行時ロードする(一般の GLAD2 と違い web 生成不要・git 管理)。SDL_GL_CreateContext の後に kaedevn_gladLoadGL() が呼ばれる。
2. glActiveTexture のみ prototype 衝突
SDL_opengl.h 本体が glActiveTexture だけ無条件に prototype 宣言するため、ここだけ固有の対処が要る(他 36 関数は GL_GLEXT_PROTOTYPES 未定義で typedef のみ)。既に対応済み。
3. M_PI 二重定義の警告 C4005(無害)
SDL2 の SDL_stdinc.h と _USE_MATH_DEFINES(<corecrt_math_defines.h>)が両方 M_PI を定義して警告が出る。害は無いので放置可。気になれば定義順を入れ替える。
4. 日本語フォントが表示されない
main.cpp の Windows 用フォント候補(Yu Gothic / Meiryo / MS Gothic / Segoe UI、プロジェクト同梱の fonts/NotoSansJP-Regular.ttf を優先)から最初に見つかったものが採用される。ログに Font loaded: が出ていれば OK。
5. vswhere.exe / cl.exe が見つからない
Visual Studio に C++(デスクトップ開発)ワークロードが入っていない。VS Installer で「C++ によるデスクトップ開発」を追加する。vswhere.exe は C:\Program Files (x86)\Microsoft Visual Studio\Installer\ にある。
CI に関する注意
Windows ビルドは現状手動運用(build-windows.ps1)で、GitHub Actions の windows-latest では自動化していない(方針として手動運用で確定)。macOS / Android / iOS と同じく、CI には載っていない。
クイックリファレンス
# === SDL2 ソース取得(初回のみ。build スクリプトが自動実行もする) ===
pwsh -File scripts/build/download-sdl2-sources.ps1
# === ビルド(Release) ===
pwsh -File packages/native-engine/windows/build-windows.ps1
# === デバッグビルド(コンソール表示あり) ===
pwsh -File packages/native-engine/windows/build-windows.ps1 -BuildType Debug
# === 実行 ===
& packages\native-engine\windows\build\kaedevn_native.exe
# === クリーンビルド ===
pwsh -File packages/native-engine/windows/build-windows.ps1 -Clean