0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

juce_vst3_helper 失敗でビルドできない場合の対処法

Posted at

はじめに

ググっても同様の記録が見当たらなかったので、投稿します。
MacでJUCEを使ってVSTプラグインを開発中に以下の現象にハマった件の記録です。

  • VSTのビルドに失敗する
    • CLIでビルドすると途中で Segmentation Fault している
    • これを見つけるためにcmakeを導入した
  • AU版、Standalone版はビルドできる
  • 特に変なプログラムを書いたつもりはない(なかった)

結論

  • BAD ACCESSが原因(私の場合)
  • LLDB で juce_vst3_helper を起動したら原因がわかった
    • ビルドプロセスを手動でデバッグ実行したらヒントが得られる

ビルドエラーの詳細

私が遭遇したビルドエラーは以下の内容でした。
XXXはmacのユーザ名、YYYはプラグイン名です。またプラグインのバージョン番号はとりあえず1.0.0としてありますので適宜読み替えてください。

Xcodeのエラーメッセージ

Command PhaseScriptExecution failed with a nonzero exit code

Xcodeの詳細ログ

/Users/XXX/Library/Developer/Xcode/DerivedData/XXX/Build/Intermediates.noindex/YYY.build/Debug/YYY - VST3.build/Script-5EE3CAAC0943FC46AD27AAAB.sh: line 6: 75859 Segmentation fault: 11  "$CONFIGURATION_BUILD_DIR/juce_vst3_helper" -create -version "1.0.0" -path "$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME" -output "$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Resources/moduleinfo.json"
Command PhaseScriptExecution failed with a nonzero exit code

Cmake(+ninja)のログ

(色々書かれている)
-- Replacing invalid signature with ad-hoc signature
/Users/XXX/.../YYY.vst3: replacing existing signature
/bin/sh: line 1: 76137 Segmentation fault: 11  /Users/XXX/.../juce_vst3_helper -create -version 1.0.0 -path /Users/XXX/.../YYY.vst3 -output /Users/XXX/.../YYY.vst3/Contents/Resources/moduleinfo.json
ninja: build stopped: subcommand failed.

原因調査

lldb で juce_vst3_helper を起動し、rコマンドでデバッグ起動しました。
(make または ninja を走らせたのと同じディレクトリで、ビルド失敗直後にCLI上で実行。)

> lldb /Users/XXX/…/juce_vst3_helper
(lldb) r -create -version 1.0.0 -path /Users/XXX/.../YYY.vst3 -output /Users/XXX/.../YYY.vst3/Contents/Resources/moduleinfo.json

これを実行すると、segmentation fault したところのスタックトレースがコンソールに出てきました。
なるほどBAD ACCESSが有ったので、ソースコードを修正し再ビルドしたところ、vst版もビルドできるようになりました。
ビルドされたvstプラグインの動作も、特に問題なし。

最後に

  • LLDBは使いにくいけど、便利。
    • 自作プログラム以外で初めて使った。こうやれば使えるのか。。。
  • juce_vst3_helper はプラグインの動作確認をしているっぽい。
    • Xcode のログを見るとDBG() の出力が出ていたりする
    • 調べてないけど、調べれば色々出てきそう
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?