gcc和g++的区别,如何看自己的编译器支持的C++的版本

本文详细比较了gcc和g++在文件处理、编译链接流程及对C++特性的支持。重点提到gcc对C++库链接的处理,并介绍了如何通过`__cplusplus`检查编译器的C++版本。
摘要由CSDN通过智能技术生成

gcc和g++的区别

用一句话来说,就是gcc将程序视为c语言的,g++将程序视为C++的

gcc和g++的区别主要在于它们处理不同后缀的文件类型、编译和连接阶段的不同调用方式,以及它们对C++特性的支持方式。以下是详细介绍:123

文件类型。gcc将后缀为.c的文件视为C程序,而g++将后缀为.c和.cpp的文件视为C++程序。
编译和连接阶段。gcc和g++在编译阶段都会调用各自的内核,但在连接阶段,g++通常用于完成C++程序的链接,因为gcc不自动链接C++程序所使用的库,需要使用g++来编译或是在gcc命令行上加上对C++库的链接选项。
对C++特性的支持方式。gcc和g++在编译C++代码时是等价的,但gcc不会自动调用C++程序所使用的库进行链接,因此需要使用g++来编译或是在gcc命令行上加上对C++库的链接选项

我的DEV的编译器是gcc的,

如何看自己的编译器支持的C++的版本

先普及一下各编译器的版本,调用如下函数,

printf("%ld\n",__cplusplus);

对应关系如下
C ++ 98:__cplusplus是199711L
C ++ 11:__cplusplus是201103L
C ++ 14:__cplusplus是201402L
C ++ 17:__cplusplus是201703L

我的是dev编译器
用这段可以看出所用C++的版本
在这里插入图片描述

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gcc和g之间的区别在于它们在编译和链接过程中的行为略有不同。gcc是GNU Compiler Collection的缩写,是一个包含多个编译器的工具集合。而g只是gcc命令的一个别名。 在编译阶段,gcc和g都会调用gcc编译器来处理C语言C++代码,并生成目标文件。对于C语言代码来说,gcc和g是等价的。然而,由于gcc命令不能自动链接使用的库,所以通常使用g命令进行链接。为了统一起见,通常将编译和链接过程都使用g命令来完成。 另外,有一些关于gcc和g的误解需要澄清。首先,extern "C"与gcc或g没有直接的关系。extern "C"是C++编程中的一个关键词,用于指定使用C风格的函数命名和链接规则。其次,gcc和g在定义__cplusplus宏方面也有所不同。gcc不会定义__cplusplus宏,而g会定义该宏,这是因为g是gcc命令的别名,用于编译C++代码时,g会自动添加-C选项来定义__cplusplus宏。 综上所述,gcc和g之间的区别主要在于对编译和链接过程的处理方式略有差异,而不在于语言本身或特定的编译选项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [GccG++区别(通俗易懂)](https://blog.csdn.net/weixin_47156401/article/details/125653897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [gccg++区别](https://blog.csdn.net/u013457167/article/details/80222557)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值