如何在OSX Sierra上安装GCC 4.6.3并指定其替代Clang编译?
解决OSX下指定GCC 4.2/4.6.3而非Clang编译的问题
我完全懂你现在的困扰——课程要求用特定版本的GCC编译适配Bochs的程序,可OSX默认把gcc别名指向了Clang,这确实容易绕晕。下面是几个实用的方法帮你精准指定目标GCC版本:
1. 先确认系统里的GCC版本现状
首先检查你输入gcc时实际调用的工具:
gcc --version
如果输出里提到clang,说明系统默认的gcc是Clang的别名。接下来验证是否已安装目标版本的GCC:
# 检查4.6.3版本 gcc-4.6 --version # 检查4.2版本 gcc-4.2 --version
如果能显示对应版本的GCC信息,说明已经安装完成,直接用这个命令编译即可。
2. 直接用版本化GCC命令编译
如果找到了对应版本的GCC命令(比如gcc-4.6),编译时直接替换默认的gcc:
gcc-4.6 your_kernel.c -o your_kernel.o
如果项目用Makefile构建,也可以在执行make时临时指定编译器:
CC=gcc-4.6 make
这样Makefile里的CC变量会自动替换为你指定的GCC版本。
3. 临时/永久设置环境变量指定默认编译器
不想每次都敲版本号的话,可以临时设置环境变量:
export CC=gcc-4.6 # 之后直接用gcc命令,实际调用的就是gcc-4.6 gcc your_program.c -o output
如果想让设置永久生效,把上面的export命令加到你的~/.bash_profile或~/.zshrc里(取决于你用的shell)。
4. 修改Makefile固定编译器
如果项目用Makefile管理,直接在文件开头修改CC变量:
CC = gcc-4.6 # 若是4.2版本则写gcc-4.2
这样每次执行make时都会自动用指定的GCC版本编译。
补充:未安装目标版本GCC的解决办法
如果系统里没有GCC 4.6.3,可通过Homebrew安装(假设你已安装Homebrew):
brew install gcc@4.6
安装完成后,就能用gcc-4.6命令调用对应版本了。
内容的提问来源于stack exchange,提问作者thelostmachine
相关产品推荐
相关产品推荐

