macOS下如何安装gcc使其`gcc --version`的InstalledDir为CommandLineTools路径
macOS 切换gcc工具链解决pycurl安装问题
问题背景
在macOS上安装pycurl时出现导入报错,经确认当前环境的gcc默认使用Xcode内置的工具链,不符合安装要求:
> /Applications/Xcode.app/Contents/Developer/usr/bin/gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple clang version 13.0.0 (clang-1300.0.29.3) Target: x86_64-apple-darwin20.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
要求gcc的InstalledDir为/Library/Developer/CommandLineTools/usr/bin。
常见疑问解答
为什么brew install gcc安装出来的是avr-gcc?
avr-gcc是针对AVR单片机架构的交叉编译工具链,不是通用的x86/arm架构gcc。出现这个情况大概率是本地brew的包配置异常,或是之前安装过嵌入式开发相关的依赖包导致的别名冲突。另外brew安装的标准gcc默认会带版本后缀,比如gcc-11、gcc-12,不会直接覆盖系统默认的gcc命令指向。
切换默认gcc工具链的方法
不需要额外安装gcc,直接用系统自带的xcode-select工具切换默认开发工具路径即可:
- 执行切换命令:
sudo xcode-select -s /Library/Developer/CommandLineTools
- 验证是否切换成功:
gcc --version
此时输出的InstalledDir应该已经变成/Library/Developer/CommandLineTools/usr/bin,之后再重新安装pycurl即可。
如果后续需要切换回Xcode内置的工具链,执行以下命令即可:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
其他macOS gcc安装方式
如果需要安装官方GNU GCC而非Apple clang伪装的gcc,可以用brew安装指定版本的gcc,以gcc 12为例:
brew install gcc@12
安装完成后可以通过gcc-12 --version调用,若要设置为默认gcc,可在shell配置文件(/.zshrc或/.bash_profile)中添加别名:
alias gcc="gcc-12" alias g++="g++-12"
生效后调用gcc --version就是GNU GCC版本了。
内容的提问来源于stack exchange,提问作者P i
相关产品推荐
相关产品推荐

