MacOS 10.15.6运行Buildroot 2021.08.x提示gcc未安装错误如何解决
问题根本原因
- MacOS系统默认将
gcc命令软链接到了Xcode CommandLineTools自带的clang编译器,而非GNU GCC - brew安装的GNU GCC默认会添加版本后缀,对应你安装的11.2.0版本,实际命令为
gcc-11、g++-11,没有注册无后缀的gcc全局命令 - 报错中的
sed: illegal option -- r是因为Mac原生sed为BSD版本,Buildroot依赖GNU sed的扩展参数
解决步骤
第一步:安装缺失的GNU工具
执行以下命令安装GNU sed:brew install gnu-sed
第二步:单次编译临时生效方案(推荐,不会修改系统全局配置)
在执行Buildroot编译的终端窗口,依次执行以下命令导出环境变量:
# 指定GNU GCC编译器路径,对应你安装的11版本 export CC=gcc-11 export CXX=g++-11 export CPP=cpp-11 # 让GNU sed优先于系统原生BSD sed被调用 export PATH="$(brew --prefix)/opt/gnu-sed/libexec/gnubin:$PATH"
导出完成后回到Buildroot目录重新执行make即可正常编译。
第三步:(可选)永久生效方案
如果需要经常编译依赖GNU工具链的项目,可以将上面的环境变量配置写入你的shell配置文件:
- 用zsh的话写入
~/.zshrc - 用bash的话写入
~/.bash_profile
写入完成后执行source 对应配置文件路径即可全局生效。
注意:不要尝试直接修改系统/usr/bin目录下的gcc软链接,会触发MacOS系统完整性保护(SIP)限制,反而导致系统功能异常
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

