风过空庭,字句正徐来。
关于关于本站关于我给我点钱
更多时间线友链文件服务wiki
联系写留言发邮件GitHub
© 2024-2026 yono. | RSS 订阅 | 站点地图 | | Stay hungry. Stay foolish.
Powered by Mix Space&
白い
.
| 粤 ICP 备2024284785号-1 |
正在被0人看爆
纸白微明,未成篇章。

macOS 搭建 arm-gcc 构建环境

(已编辑)
16
AI·GEN

关键洞察

macOS 搭建 arm-gcc 构建环境

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 前置条件

    mac 常用的包管理器是 brew(Homebrew),首先需要安装这个环境,后续才好方便地安装 mac 中所谓的「命令行工具」。

    而安装 brew 又需要可以访问 GitHub的前置条件,在 mac 系统中很难使用我最爱的 steam++,那么有两种最简单方法。一是使用最通用的 VPN 方式——clash;二则更简单更小白,使用 UU 加速器就可以,UU 加速器搜索「学术」,即可免费加速。

    等确认可以正确访问 GitHub 之后,在终端中使用以下指令。注意,这个指令最后有提示如何操作 PASH。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    安装完成后使用以下指令确认是否安装成功。

    brew -v
    

    安装编译链和构建工具

    首先安装构建工具,cmake 和 jinja。

    brew install cmake ninja
    

    然后安装编译链,这里有一个问题,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 的头文件名。

    CodeBlock Loading...

    然后就可以正常编译项目了

    arm-none-eabi-gcc -v -E -x c - < /dev/null