g++和gcc的区别以及mac下的g++升级

1、g++ 和 gcc是什么?

常见的误解:gcc是g++的子集,在运行C源码的时候g++会调用gcc。

往下看,解开误解。

  • GCC
    GCC是GNU编译器集合的意思,它是一套编程语言编译器,提供了g++ 和 gcc等命令。GCC原名GNU C语言编译器,因为它本来只能处理C语言,后来扩展到多种语言。GCC也常被认为是跨平台编译器的事实标准。
  • g++和gcc都是driver
    g++和gcc是编译器提供给用户的命令,他们都是driver,狭义上来讲,driver的功能是调用相关的编译器,把源码编译到汇编代码。例如,C语言的编译器(狭义)是cc1,而C++语言的编译器(狭义)是cc1plus。
  • g++和gcc的区别
    二者的区别无非就是调用的编译器不同,传递给链接器的参数不同。driver会根据源码的后缀名选择调用什么编译器。
2、在mac上更新g++

第一步,检查并安装homebrew,看这篇文章,已经安装过的跳过。
第二步,查看gcc版本并安装。

brew info gcc         #查看版本
brew install gcc      #安装gcc

第三步,在shell配置文件添加别名
这一步是为了用我们刚刚使用homebrew安装的gcc替换系统的gcc,因为走到这一步时,执行系统g++版本查看命令 g++ -version 查看会发现系统的gcc版本并未变化,这是未配置的原因。配置步骤如下:

打开配置文件:

vi ~/.zshrc              #使用zsh的系统
vi ~/.bash_profile       #使用bash的系统

在其中添加:

alias gcc='gcc-11'
alias g++="g++-11"
alias cc="gcc-11"
alias c++="c++-11"

然后

source ~/.zshrc              #使用zsh的系统
source ~/.bash_profile       #使用bash的系统

至此,g++升级完成,可以重新查看版本。

当时我升级完g++的时候产生了一个疑问:我要升级的是g++,为什么我是在安装gcc?
看了前面我关于g++和gcc区别的讨论,你应该不会再有这个疑问,因为这里的gcc是指编译器集合,而不是driver。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值