gcc与g++的区别

1.https://www.zhihu.com/question/20940822
参考第一个答案:gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更多其他不同语言的编译器,GCC就代表 the GNU Compiler Collection,所以表示一堆编译器的合集。 g++则是GCC的c++编译器。
现在你在编译代码时调用的gcc,已经不是当初那个c语言编译器了,更确切的说他是一个驱动程序根据代码的后缀名来判断调用c编译器还是c++编译器 (g++)。比如你的代码后缀是*.c,他会调用c编译器还有linker去链接c的library。如果你的代码后缀是cpp, 他会调用c++编译器(原文写的g++,这里改为c++更好理解),当然library call也是c++版本的。以上只是针对编译阶段,链接阶段gcc命令则不能自动和c++程序使用的库连接。
2.看了这么多篇文章,觉得就这两篇讲的清楚一些:
https://www.cnblogs.com/samewang/p/4774180.html
https://www.52pojie.cn/thread-58109-1-1.html
3.下面总结一下自己的理解:
gcc与g++是驱动程序,根据后缀来决定调用哪一个编译器。gcc默认调用C编译器,(后缀为CPP则调用c++编译器。)g++默认调用c++编译器,(但如果遇到C程序,它会直接调用gcc去编译.)
编译阶段:后缀为.c的,gcc把它当作是C程序,(调用C编译器)而g++当作是c++程序(调用c++编译器);后缀为CPP则都调用c++编译器。
连接阶段:gcc调用c编译器还有linker去链接c的library(也可通过gcc -lstdc++调用c++编译器还有linker链接c++的library),g++调用c++编译器还有linker链接c++的library

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值