Mac环境下arm-none-eabi-gcc缺失stdint.h文件问题求助
解决STM32F3编译时stdint.h缺失问题
方法1:用第三方brew源安装带newlib的完整工具链
brew官方源里的arm-none-eabi工具链拆分了组件,没有单独的newlib包,换用第三方tap的集成版本就能解决:
- 先卸载现有brew安装的ARM工具链:
brew uninstall --force arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-gdb - 添加PX4的brew源并安装完整工具链:
这个版本已经集成了newlib,安装完成后重新编译项目即可。brew tap px4/homebrew-px4 brew install px4/px4/arm-none-eabi-gcc
方法2:手动安装ARM官方预编译工具链
如果不想用第三方源,直接从ARM官网下载包含newlib的完整预编译工具链:
- 下载适配Mac系统的ARM GNU工具链
- 解压后把工具链的
bin目录添加到系统环境变量PATH中,比如在zsh里:
替换路径后重启终端,就能用带newlib的工具链编译了。echo 'export PATH="/你的工具链解压路径/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
方法3:手动编译newlib(不推荐)
如果非要保留现有brew版本,得自己编译newlib:
- 下载newlib源码,配置编译目标为
arm-none-eabi后编译安装 - 编译STM32项目时,用
-I参数指定newlib的头文件目录,比如:
这种步骤繁琐,容易出问题,优先选前两种方法。arm-none-eabi-gcc -I/newlib安装路径/include 你的源码文件.c -o 输出文件.elf
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

