macOSでopenMSX Debuggerをビルドする
macOS 10.15.7の環境でopenMSX Debuggerをビルドしたので手順をメモ。
環境
- MacBook Air (13inch, Mid 2012)
- macOS 10.15.7
事の顛末
これは軽い気持ちでopenMSX Debuggerを使ってみようとして、不注意から色々とやらかしてしまった顛末のメモ。
最終的なインストール手順は「簡単な手順」を参照。
openMSX Debuggerバイナリの起動でエラー
openMSX Debuggerは下記のページからバイナリをダウンロードできる。
ここにちゃんとrequires separate Qt5 download
と書いてあり「はいはいQtが必要なのね」と読んだのだが…。
ダウンロードしたバイナリを起動するとエラーになってしまった。
レポートを見てみるとQtのライブラリが見つからないらしい。
Dyld Error Message:
Library not loaded: /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore
Referenced from: /Users/USER/Documents/*/OpenMSX_debugger.app/Contents/MacOS/openmsx-debugger
Reason: image not found
そう、ダウンロードリンクのところに書いてあったにもかかわらずQtを用意せずに起動してしまったのだ。
Qt のインストール
Qtはhome brewを使ってインストールすることにした。
paraches@uriel-2 ~ % brew install qt
<中略>
==> Installing qt
==> Pouring qt-6.0.3.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/qt/6.0.3: 8,233 files, 158.1MB
==> Caveats
==> dbus
To have launchd start dbus now and restart at login:
brew services start dbus
paraches@uriel-2 ~ %
インストールは問題なく完了。
再度openMSX Debuggerのバイナリを起動するが同じエラーになる。Qtインストールしたのになぜ見つからない?
ここで、なぜか「それならばopenMSX Debuggerをソースからビルドしてみよう」と考えてしまった。
openMSX Debugger build
前出のページからソースファイルをダウンロードして、トップのフォルダでmake
コマンド。
paraches@uriel-2 debugger-master % make
Autodetecting native system:
Using Python 3.9.4 native system detection...
Detected system: x86_64-darwin
build/main.mk:237: *** Qt version 6.0.3 found; please pass QMAKE pointing to Qt 5.x instead. Stop.
paraches@uriel-2 debugger-master %
エラーメッセージが表示される。
なるほど、home brewでインストールされたのはQt6で、必要なのはQt5だったのだ。
確かに前出のページにもちゃんとQt5と書いてある…。
Qt5 のインストール
Qt5 を再度home brewでインストール。
paraches@uriel-2 ~ % brew install qt5
<中略>
qt@5 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have qt@5 first in your PATH, run:
echo 'export PATH="/usr/local/opt/qt@5/bin:$PATH"' >> ~/.zshrc
For compilers to find qt@5 you may need to set:
export LDFLAGS="-L/usr/local/opt/qt@5/lib"
export CPPFLAGS="-I/usr/local/opt/qt@5/include"
For pkg-config to find qt@5 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/qt@5/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/qt@5/5.15.2: 10,688 files, 367.9MB
paraches@uriel-2 ~ %
インストール完了!
再度openMSX Debuggerをmake
してみるがやはりQt5が見つからないとエラー。
ここでQt5をインストールした時のログを確認。
qt@5 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have qt@5 first in your PATH, run:
echo 'export PATH="/usr/local/opt/qt@5/bin:$PATH"' >> ~/.zshrc
ちゃんと書いてある。
Qt5はkeg-onlyなので/usr/localへのリンクが作成されていない。Qt5をPATHの最初に入れるには下記のコードを.zshrc
にexport
する。(意訳)
というわけで、とりあえずopenMSX Debuggerをビルドする間だけ.zshrc
にexport
した。
paraches@uriel-2 ~ % echo 'export PATH="/usr/local/opt/qt@5/bin:$PATH"' >> ~/.zshrc
再度openMSXをmake
すると…ビルド完了!
openMSX Debugger 起動
derived
フォルダにopenMSX_Debuggerができているのでこれをダブルクリック。
ようやく起動!
簡単な手順
紆余曲折あって最終的には起動できた openMSX Debuggerだが、結局は下記の手順で行えば全く問題なかったはず。
バイナリの場合
brew install qt5
- openMSX Debuggerのバイナリをダウンロード
- openMSX Debuggerを起動
ソースからビルドの場合
brew install qt5
- openMSX Debuggerのソースをダウンロード
make
-
derived
フォルダのopenMSX_Debuggerをダブルクリック
教訓
今回の教訓はコレ。
「はいはいQt5が必要なのね」と読んでいるにもかかわらずQtをインストールせずに起動。
更にQt5と書いてあるのに何も考えずにbrew install qt
してQt6をインストールしてQtが見つからないと慌てる。
あまつさえ「ソースからビルドしてみよう」なんて方向へ行ってしまう…。
もうダメ、全然ダメ。
今回はちょっとした不注意や面倒臭がることが更なる面倒を呼ぶパターンだった。
Discussion