XcodeでOBSをビルドとデバッグするまで
はじめに
今回はXcodeでOBSをビルドし、デバッグできるようにするまでの手順を記録します。 色々うまくいかなかったですが、試行錯誤してデバッグできる状態まで持っていけました。
手順
基本的にここのマニュアルの通りでOK。
Build Instructions For Mac · obsproject/obs-studio Wiki · GitHub
Xcodeを削除してしまっていたので、再インストールした。 AppStoreからだと異様に遅く、進捗が見えないので、ここからXcodeをダウンロードしてインストールした。 https://developer.apple.com/download/all/
Swigがうまく認識しなかったので、-DSWIG_DIR
でobs-deps配下のSwigを使用するように指定。
% cmake -S . -B build -G Xcode \ -DCEF_ROOT_DIR="~/development/obs-build-dependencies/cef_binary_4638_macos_x86_64" \ -DCMAKE_PREFIX_PATH="~/development/obs-build-dependencies/obs-deps" \ -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_OSX_ARCHITECTURES="x86_64" -DSWIG_DIR="/Users/yoshinori_sano/development/obs-build-dependencies/obs-deps/share/swig/4.1.0"
cmakeでエラー
cmakeを実行すると以下のようにコンパイラが見つからないエラーが発生した。
% cmake -S . -B build -G Xcode \ -DCEF_ROOT_DIR="~/development/obs-build-dependencies/cef_binary_4638_macos_x86_64" \ -DCMAKE_PREFIX_PATH="~/development/obs-build-dependencies/obs-deps" \ -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_OSX_ARCHITECTURES="x86_64" -DSWIG_DIR="/Users/yoshinori_sano/development/obs-build-dependencies/obs-deps/share/swig/4.1.0" -- OBS: Application Version: 28.0.0-beta1-8-g76e9c64f4 - Build Number: 63 -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:15 (project): No CMAKE_C_COMPILER could be found. CMake Error at CMakeLists.txt:15 (project): No CMAKE_CXX_COMPILER could be found.
エラーログを確認すると、以下のエラーがあった。
% less ~/projects/obs-studio/build/CMakeFiles/CMakeError.log [...] xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
調べたら、XcodeのPreferenceの設定をすれば良いことが分かった。
Xcodeを再インストールした時に、状態がおかしくなったのかもしれない。
Preference > Locations > Command Line Toolsが空の状態になっていたので、Xcode 13.4.1を選択。
ビルドと実行
以下のコマンドを実行したら、buildディレクトリ配下に「obs-studio.xcodeproj」が生成されるのでXcodeで開く。
% cmake -S . -B build -G Xcode \ -DCEF_ROOT_DIR="~/development/obs-build-dependencies/cef_binary_4638_macos_x86_64" \ -DCMAKE_PREFIX_PATH="~/development/obs-build-dependencies/obs-deps" \ -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_OSX_ARCHITECTURES="x86_64" -DSWIG_DIR="/Users/yoshinori_sano/development/obs-build-dependencies/obs-deps/share/swig/4.1.0"
Schemaをobsに変更してビルドを実行する。しばらくすると、OBSが起動する。
デバッグできない問題
ブレークポイントを追加しても、無効になってしまう問題が発生。
OBSのDiscordで質問してみたものの、よく分からず。
デバッグシンボルが付いてないのかなと思ってcmakeからやり直してみることに。
解決方法
Xcodeのプロジェクトファイルを生成する時に、-DCMAKE_BUILD_TYPE=Debug
をcmakeのオプションに追加することでデバッグ版のOBSが生成されるようになる。
% cmake -S . -B build -G Xcode \ -DCEF_ROOT_DIR="~/development/obs-build-dependencies/cef_binary_4638_macos_x86_64" \ -DCMAKE_PREFIX_PATH="~/development/obs-build-dependencies/obs-deps" \ -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_OSX_ARCHITECTURES="x86_64" -DSWIG_DIR="/Users/yoshinori_sano/development/obs-build-dependencies/obs-deps/share/swig/4.1.0" -DCMAKE_BUILD_TYPE=Debug