ビルドガイド
Note
本文はAIによって生成されたものであり、誤りや不完全な部分が含まれている可能性があります。
このドキュメントでは、DesktopDanmakuプロジェクトのビルド方法について詳しく説明します。ビルド環境の構築、ビルドコマンド、ビルド中の一般的な問題などを含みます。
1. ビルド環境
1.1 必要なツール
- オペレーティングシステム:Windows 10 以降
- C++ コンパイラ:C++17 をサポートするコンパイラで、g++ コマンドで呼び出し可能(GCC、MinGW-w64 など)
- GNU Make:ビルドコマンドの実行に使用
1.2 推奨ツール
- MSYS2:MingGW64 コンパイル環境を提供します(オプション、g++ コンパイラを簡単に取得できます)
1.3 環境の構築
1.3.1 C++ コンパイラのインストール
WindowsシステムにC++コンパイラをインストールする方法は以下の通りです。g++コマンドで呼び出し可能であることを確認してください。2つのオプションがあります:
オプション 1:MSYS2 を使用する(推奨、Windows で最も便利な方法)
- MSYS2 公式サイト から Windows バージョンの MSYS2 をダウンロードしてインストールします
- インストールが完了したら、MSYS2 MSYS ターミナルを開きます
- 以下のコマンドを実行してシステムパッケージを更新します:
pacman -Syu- ターミナルを再起動し、再度更新コマンドを実行します:
pacman -Syu- MingGW64 ツールチェーン(g++ コンパイラを含む)をインストールします:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-makeC:\msys64\mingw64\binをシステム環境変数PATHに追加します
オプション 2:直接 MinGW-w64 をインストールする
- MinGW-w64 公式サイト から Windows バージョンの MinGW-w64 をダウンロードします
- インストーラーを実行し、適切なアーキテクチャとバージョンを選択します
- インストールディレクトリの下の
binフォルダをシステム環境変数PATHに追加します
1.3.2 GNU Make のインストール
オプション 2 で MinGW-w64 をインストールした後、make --version を実行してコマンドが見つからないと表示される場合、GNU Make を個別にインストールする必要があります:
- GNU Make for Windows からインストーラーをダウンロードします
- インストーラーを実行します
- インストールディレクトリの下の
binフォルダをシステム環境変数PATHに追加します
1.3.3 環境インストールの確認
コマンドプロンプトで以下のコマンドを実行し、コンパイラが正常にインストールされているか確認します:
g++ --version
make --version2. プロジェクトのビルド
2.1 基本的なビルドコマンド
プロジェクトのルートディレクトリで以下のコマンドを実行します:
2.1.1 DEBUG バージョンのビルド(デフォルト 64 ビット)
makeこれにより、build/64/debug ディレクトリに実行可能ファイル danmaku.exe が生成されます。
2.1.2 32 ビット DEBUG バージョンのビルド
make ARCH=32これにより、build/32/debug ディレクトリに 32 ビット実行可能ファイル danmaku.exe が生成されます。
2.1.3 RELEASE バージョンのビルド(64 ビット)
make DEBUG=0これにより、build/64/release ディレクトリに最適化された実行可能ファイル danmaku.exe が生成されます。
2.1.4 32 ビット RELEASE バージョンのビルド
make ARCH=32 DEBUG=0これにより、build/32/release ディレクトリに最適化された 32 ビット実行可能ファイル danmaku.exe が生成されます。
2.2 ビルドオプション
| オプション | 説明 | デフォルト値 |
|---|---|---|
| ARCH | アーキテクチャ、32 または 64 をサポート | 64 |
| DEBUG | デバッグバージョンをビルドするかどうか、1 ははい、0 はいいえ | 1 |
| CXX | C++ コンパイラ | 64 ビット: g++、32 ビット: i686-w64-mingw32-g++ |
| CXXFLAGS | C++ コンパイラフラグ | -std=c++17 -Wall -Wextra -Wpedantic |
| LDFLAGS | リンカーフラグ | -mwindows -municode |
| LDLIBS | リンクライブラリ | -luser32 -lgdi32 -lcomctl32 -lgdiplus |
2.3 その他のビルドターゲット
2.3.1 ヘルプ情報の表示
make helpmakefile のヘルプ情報を表示します(実際には docs/makefileHelper.txt ファイルの内容を表示します)。
2.3.2 ビルドファイルのクリーンアップ
make cleanすべてのビルド生成ファイルとディレクトリ(build ディレクトリ全体)を削除します。
2.3.3 コンパイル結果の実行
make runプログラムをコンパイルして実行します(デフォルトで 64 ビットバージョンを実行します)。
2.3.4 すべてのリリースバージョンのビルド
make release64 ビットおよび 32 ビットのリリースバージョンをクリーンアップしてビルドします。
2.3.5 64 ビットリリースバージョンのビルド
make release6464 ビットリリースバージョンをビルドします。
2.3.6 32 ビットリリースバージョンのビルド
make release3232 ビットリリースバージョンをビルドします。
2.3.7 インストールパッケージのビルド
make installer64 ビットおよび 32 ビットのインストールパッケージをクリーンアップしてビルドします。
2.3.8 64 ビットインストールパッケージのビルド
make installer6464 ビットインストールパッケージをビルドします。
2.3.9 32 ビットインストールパッケージのビルド
make installer3232 ビットインストールパッケージをビルドします。
3. ビルドプロセスの詳細
3.1 ビルドディレクトリ構造
ビルドプロセスでは、プロジェクトのルートディレクトリに build ディレクトリが作成され、アーキテクチャとビルドタイプに応じてサブディレクトリが作成されます:
build/
├── 64/
│ ├── debug/ # 64 ビットデバッグバージョン
│ │ ├── obj/ # オブジェクトファイルディレクトリ
│ │ └── danmaku.exe # 実行可能ファイル
│ └── release/ # 64 ビットリリースバージョン
│ ├── obj/ # オブジェクトファイルディレクトリ
│ └── danmaku.exe # 実行可能ファイル
└── 32/
├── debug/ # 32 ビットデバッグバージョン
│ ├── obj/ # オブジェクトファイルディレクトリ
│ └── danmaku.exe # 実行可能ファイル
└── release/ # 32 ビットリリースバージョン
├── obj/ # オブジェクトファイルディレクトリ
└── danmaku.exe # 実行可能ファイル3.2 ビルドフロー
- ビルドディレクトリが存在するかどうかを確認し、存在しない場合は作成します
- ソースファイルをコンパイルし、オブジェクトファイルを生成します(obj ディレクトリに保存)
- リソースファイル(src/list.rc)をコンパイルし、manifest.o を生成します
- すべてのオブジェクトファイルとリソースファイルをリンクし、実行可能ファイル danmaku.exe を生成します
- ビルド完了後、ビルド結果の情報を表示します
3.3 依存関係管理
プロジェクトは makefile を使用して依存関係を自動的に管理します。ソースファイルまたはヘッダーファイルが変更されると、関連するファイルが自動的に再コンパイルされます。
4. 一般的な問題と解決策
4.1 ビルドの失敗
4.1.1 コンパイラが見つからない
エラーメッセージ:
make: gcc: Command not found解決策:
- MSYS2 と MingGW64 が正しくインストールされているか確認します
- 環境変数
PATHにC:\msys64\mingw64\binが含まれているか確認します - 環境変数が有効になるように、コマンドプロンプトを再開してみます
4.1.2 ヘッダーファイルが見つからない
エラーメッセージ:
fatal error: danmaku/dmkitem.hpp: No such file or directory解決策:
- プロジェクトのディレクトリ構造が正しいか確認します
- ヘッダーファイルのパスが include ディレクトリの下にあることを確認します
- makefile のインクルードパス設定を確認します
4.1.3 リンクエラー
エラーメッセージ:
undefined reference to `GdiplusStartup'解決策:
- GDI+ ライブラリが正しくリンクされているか確認します
- makefile の LIBS 変数に
-lgdiplusが含まれていることを確認します
4.2 実行時エラー
4.2.1 DLL ファイルが不足している
エラーメッセージ:
このプログラムを開始できません。コンピューターに libgcc_s_seh-1.dll がありません。解決策:
- MSYS2 から DLL ファイルを実行可能ファイルディレクトリにコピーします
- または、MSYS2 の bin ディレクトリをシステム環境変数
PATHに追加します
4.2.2 アクセス許可エラー
エラーメッセージ:
アクセスが拒否されました。解決策:
- コマンドプロンプトまたは実行可能ファイルを管理者として実行します
- ファイルとディレクトリのアクセス許可設定を確認します
5. 高度なビルドオプション
5.1 カスタムコンパイルフラグ
コマンドラインパラメータを介してコンパイルフラグをカスタマイズできます:
make CXXFLAGS="-Wall -Wextra -g -std=c++17 -O2"5.2 並列ビルド
-j オプションを使用すると、並列ビルドが有効になり、ビルドプロセスが高速化されます:
make -j4ここで 4 は並列タスクの数であり、CPU コア数に応じて調整できます。
5.3 クロスコンパイル
プロジェクトはクロスコンパイルをサポートしており、64 ビットシステムで 32 ビットバージョンをビルドすることができます:
make ARCH=326. ビルドスクリプト
6.1 バッチスクリプト
ビルドプロセスを簡素化するためにバッチスクリプトを作成できます。例:
build_debug.bat:
@echo off
make
pausebuild_release.bat:
@echo off
make RELEASE=1
pause6.2 PowerShell スクリプト
build_debug.ps1:
make
Read-Host "Press Enter to continue..."build_release.ps1:
make RELEASE=1
Read-Host "Press Enter to continue..."7. 継続的インテグレーション
継続的インテグレーションを設定する必要がある場合は、以下の設定を参照してください:
7.1 GitHub Actions
プロジェクトのルートディレクトリに .github/workflows/build.yml ファイルを作成します:
name: Build
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-make
- name: Build DEBUG
shell: msys2 {0}
run: make
- name: Build RELEASE
shell: msys2 {0}
run: make RELEASE=1
- name: Build 32-bit DEBUG
shell: msys2 {0}
run: make ARCH=32
- name: Build 32-bit RELEASE
shell: msys2 {0}
run: make ARCH=32 RELEASE=18. まとめ
このガイドでは、DesktopDanmakuプロジェクトのビルドプロセスについて詳しく説明しました。環境構築、ビルドコマンド、一般的な問題の解決策などを含みます。このガイドに従うことで、プロジェクトを正常にビルドし、ビルドプロセスで発生する問題を解決することができるはずです。
ビルドプロセス中に他の問題が発生した場合は、プロジェクトのGitHub Issuesページを参照するか、プロジェクトのメンテナに連絡してください。
このガイドがお役に立てば幸いです!