← ソースコード説明書

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 に閉じており、他プラットフォームのビルドには影響しない。

前提条件

ツールバージョン備考
Windows10 / 11 (x64)
Visual Studio2019 / 2022 / 2026(C++ ワークロード)MSVC VC.Tools.x86.x64。Build Tools 単体でも可
CMake3.30+システムインストール(PATH に通す)
NinjaVS 同梱を自動使用Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe
PowerShell7+ (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

-BuildTypeDebug / Release / RelWithDebInfo。スクリプトの内部処理:

  1. external/SDL2-2.30.12 が無ければ download-sdl2-sources.ps1 を実行
  2. vswhere.exe で Visual Studio を検出 → vcvars64.bat で MSVC x64 環境を import(cl.exe を PATH に乗せる)
  3. VS 同梱 Ninja を選択(無ければ PATH の ninja
  4. cmake -G Ninja -S packages/native-engine/windows -B .../build -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl
  5. cmake --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.exeC:\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
Ad: stickyBottom (728x90)
kaedevn - ノベルゲームを作れるプラットフォーム