Visual Studio Community 2022でOBSをビルドする手順

はじめに

これはVisual Studio Community 2022でOBSをビルドする手順の記録です。 64bitのWindows版のOBSをビルドします。

基本的にこの手順に従います。

Wiki - Build Instructions For Windows | OBS

必要なソフト

手順

コードをクローンする。

% mkdir ~/projects
% cd ~projects/
% git clone --recursive https://github.com/obsproject/obs-studio.git

CMakeでの作業

CMake(GUI)を起動する。

以下を設定する。

  • Where is the source code →C:/projects/obs-studio

  • Where to build the binaries →C:/projects/obs-build

最低限、以下のエントリーを追加する。

  • CMAKE_PREFIX_PATH  例: C:/projects/obs-deps/windows-deps-2022-08-02-x64

  • QTDIR  例: C:/projects/obs-deps/windows-deps-qt6-2022-08-02-x64

Configureを実行する。 コンパイラの指定が求められるので「Visual Studio 17 2022」を選択する。

Generateを実行する。

コマンドでのプロジェクト生成

CMakeの使い方に慣れてきたら、コマンド版のCMakeを利用するとより便利になる。 以下のコマンドで上記と同様のプロジェクトを生成できる。

$ cd /c/projects/obs-studio
$ cmake -S . -B ../obs-build -DCMAKE_PREFIX_PATH="/c/projects/obs-deps/windows-deps-2022-08-02-x64" -DQTDIR="/c/projects/obs-deps/windows-deps-qt6-2022-08-02-x64"

Visual Studioでの作業

生成が成功したら、C:\projects\obs-build\obs-studio.slnを開く

ソリューションをビルドする。

ビルドが成功したら、C:\projects\obs-build\rundir\Debug\bin\64bit以下にobs64.exeが生成される。

任意の場所にブレークポイントをセットすることで、Visual Studioでのデバッグも可能。

注意事項

ビルドに関する問題の対処について記します。

キャッシュ問題

別のブランチに変更した場合、キャッシュが残って、リビルドしても前の状態が残ってしまう場合がある。 対処としては、2パターン考えられる。

  • ソフトリセット:CMakeによるプロジェクト生成を再実行する (git pullで軽微な変更を適用する場合)
  • ハードリセット:ビルドディレクトリ(C:/projects/obs-build)を丸ごと削除し、CMakeによるプロジェクト生成を再実行する。

warning C4819エラーの対処

CP932環境として設定されたWindowsでビルドすると、以下のエラーが出てビルドできない場合がある。

17>C:\projects\obs-studio\plugins\obs-ffmpeg\external/nvEncodeAPI.h(1291,1): error C2220: 次の警告はエラーとして処理されます (ソース ファイルをコンパイルしています C:\projects\obs-studio\plugins\obs-ffmpeg\jim-nvenc-helpers.c)

以下の記事を参考に、システムの設定を変更することで、このエラーを回避できる。

qiita.com