前提条件
Mac でよく使われるパッケージマネージャは brew(Homebrew)です。まずはこの brew をインストールしておく必要があります。そうすれば、あとで Mac のいわゆる「コマンドラインツール」も簡単にインストールできるようになります。
ただ、brew のインストールには、GitHub にアクセスできることが前提条件になります。Mac では、私が愛用している Steam++ を使うのが難しいため、最も簡単な方法は2つあります。1つは、もっとも汎用的な VPN の手段である Clash を使う方法。もう1つは、さらに簡単で初心者向けのUU加速器を使う方法です。UU加速器で「学術」と検索すれば、無料で加速できます。
GitHub に正しくアクセスできることを確認できたら、ターミナルで次のコマンドを実行します。このコマンドの最後に、PATH の設定方法が案内されるので注意してください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストールが完了したら、次のコマンドで正しくインストールされたか確認します。
brew -v
コンパイラチェーンとビルドツールのインストール
まずビルドツールの cmake と ninja をインストールします。
brew install cmake ninja
次にコンパイラチェーンをインストールします。ここで1つ問題があります。arm-gcc は brew で同名パッケージを直接インストールできません。その場合、インストールされるのは without-headers の変種で、標準ライブラリやヘッダファイルが多く欠けている可能性があります。Windows で msys2 を使って管理する場合も、同様の問題があります。
まず、同名のパッケージと同名のツールをアンインストールしてみてください。古い環境が残っている場合は、この手順が重要です。
brew uninstall arm-none-eabi-gcc arm-none-eabi-binutils
その後、完全なパッケージをインストールします。
brew install --cask gcc-arm-embedded
PKG="$(find "$(brew --caskroom)/gcc-arm-embedded" -name '*.pkg' | head -n 1)"
[ -n "$PKG" ] || { echo "未找到 gcc-arm-embedded 的 pkg"; exit 1; }
installer -pkg "$PKG" -target CurrentUserHomeDirectory
TOOLBIN="$(find "$HOME/Applications/ArmGNUToolchain" -type d -path '*/arm-none-eabi/bin' | sort | tail -n 1)"
[ -n "$TOOLBIN" ] || { echo "未找到 ArmGNUToolchain bin 目录"; exit 1; }
for t in gcc g++ as ar objcopy size gdb nm objdump ranlib readelf strip addr2line gcc-ar gcc-nm gcc-ranlib; do
ln -sf "$TOOLBIN/arm-none-eabi-$t" "/opt/homebrew/bin/arm-none-eabi-$t"
done
最後に、ツール一式が正しく揃っていることを検証します。出力に、正しいヘッダファイルのパスと、stdint のようなヘッダファイル名が含まれている必要があります。
arm-none-eabi-gcc -v -E -x c - < /dev/null
これで、プロジェクトを正常にコンパイルできるようになります。
