コンテンツにスキップ
🎉 Welcome! This is a banner message.

ビルドガイド

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 で最も便利な方法)
  1. MSYS2 公式サイト から Windows バージョンの MSYS2 をダウンロードしてインストールします
  2. インストールが完了したら、MSYS2 MSYS ターミナルを開きます
  3. 以下のコマンドを実行してシステムパッケージを更新します:
pacman -Syu
  1. ターミナルを再起動し、再度更新コマンドを実行します:
pacman -Syu
  1. MingGW64 ツールチェーン(g++ コンパイラを含む)をインストールします:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make
  1. C:\msys64\mingw64\bin をシステム環境変数 PATH に追加します
オプション 2:直接 MinGW-w64 をインストールする
  1. MinGW-w64 公式サイト から Windows バージョンの MinGW-w64 をダウンロードします
  2. インストーラーを実行し、適切なアーキテクチャとバージョンを選択します
  3. インストールディレクトリの下の bin フォルダをシステム環境変数 PATH に追加します

1.3.2 GNU Make のインストール

オプション 2 で MinGW-w64 をインストールした後、make --version を実行してコマンドが見つからないと表示される場合、GNU Make を個別にインストールする必要があります:

  1. GNU Make for Windows からインストーラーをダウンロードします
  2. インストーラーを実行します
  3. インストールディレクトリの下の bin フォルダをシステム環境変数 PATH に追加します

1.3.3 環境インストールの確認

コマンドプロンプトで以下のコマンドを実行し、コンパイラが正常にインストールされているか確認します:

g++ --version
make --version

2. プロジェクトのビルド

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
CXXC++ コンパイラ64 ビット: g++、32 ビット: i686-w64-mingw32-g++
CXXFLAGSC++ コンパイラフラグ-std=c++17 -Wall -Wextra -Wpedantic
LDFLAGSリンカーフラグ-mwindows -municode
LDLIBSリンクライブラリ-luser32 -lgdi32 -lcomctl32 -lgdiplus

2.3 その他のビルドターゲット

2.3.1 ヘルプ情報の表示

make help

makefile のヘルプ情報を表示します(実際には docs/makefileHelper.txt ファイルの内容を表示します)。

2.3.2 ビルドファイルのクリーンアップ

make clean

すべてのビルド生成ファイルとディレクトリ(build ディレクトリ全体)を削除します。

2.3.3 コンパイル結果の実行

make run

プログラムをコンパイルして実行します(デフォルトで 64 ビットバージョンを実行します)。

2.3.4 すべてのリリースバージョンのビルド

make release

64 ビットおよび 32 ビットのリリースバージョンをクリーンアップしてビルドします。

2.3.5 64 ビットリリースバージョンのビルド

make release64

64 ビットリリースバージョンをビルドします。

2.3.6 32 ビットリリースバージョンのビルド

make release32

32 ビットリリースバージョンをビルドします。

2.3.7 インストールパッケージのビルド

make installer

64 ビットおよび 32 ビットのインストールパッケージをクリーンアップしてビルドします。

2.3.8 64 ビットインストールパッケージのビルド

make installer64

64 ビットインストールパッケージをビルドします。

2.3.9 32 ビットインストールパッケージのビルド

make installer32

32 ビットインストールパッケージをビルドします。

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 ビルドフロー

  1. ビルドディレクトリが存在するかどうかを確認し、存在しない場合は作成します
  2. ソースファイルをコンパイルし、オブジェクトファイルを生成します(obj ディレクトリに保存)
  3. リソースファイル(src/list.rc)をコンパイルし、manifest.o を生成します
  4. すべてのオブジェクトファイルとリソースファイルをリンクし、実行可能ファイル danmaku.exe を生成します
  5. ビルド完了後、ビルド結果の情報を表示します

3.3 依存関係管理

プロジェクトは makefile を使用して依存関係を自動的に管理します。ソースファイルまたはヘッダーファイルが変更されると、関連するファイルが自動的に再コンパイルされます。

4. 一般的な問題と解決策

4.1 ビルドの失敗

4.1.1 コンパイラが見つからない

エラーメッセージ

make: gcc: Command not found

解決策

  • MSYS2 と MingGW64 が正しくインストールされているか確認します
  • 環境変数 PATHC:\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=32

6. ビルドスクリプト

6.1 バッチスクリプト

ビルドプロセスを簡素化するためにバッチスクリプトを作成できます。例:

build_debug.bat

@echo off
make
pause

build_release.bat

@echo off
make RELEASE=1
pause

6.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=1

8. まとめ

このガイドでは、DesktopDanmakuプロジェクトのビルドプロセスについて詳しく説明しました。環境構築、ビルドコマンド、一般的な問題の解決策などを含みます。このガイドに従うことで、プロジェクトを正常にビルドし、ビルドプロセスで発生する問題を解決することができるはずです。

ビルドプロセス中に他の問題が発生した場合は、プロジェクトのGitHub Issuesページを参照するか、プロジェクトのメンテナに連絡してください。


このガイドがお役に立てば幸いです!