GCC/gcc/g++那些事儿

GCC是GNU编译器集合,包括gcc(C编译器)和g++(C++编译器)。尽管它们通常按文件扩展名调用,但gcc/g++实为驱动程序,根据源文件后缀选择cc1或cc1plus。g++在编译时会自动链接STL,而gcc不会,并且在预处理C++文件时会添加__cplusplus宏。
摘要由CSDN通过智能技术生成

1. 什么是GCC/gcc/g++

  • GCC是GNU Compiler Collect(GNU编译器集合),它可以编译C、C++、Fortan等语言
  • gcc是GCC中的GNU C Compiler(C编译器)
  • g++是GCC中的GNU C++ Compiler(C++编译器)

2. gcc和g++的相关误区和比较

误区一:gcc只能编译c文件,g++只能编译cpp文件

从本质上来说,gcc和g++并不是编译器,而是负责调用真正的编译器(compiler)的一个驱动程序(driver)。在GCC中,负责编译C代码的程序叫做cc1,负责编译C++代码的叫做cc1plus。gcc/g++会根据源代码文件后缀名调用合适的编译器,并设置相关编译参数。对于.c文件和.cpp文件,分别使用gcc和g++进行编译,实际调用的编译器关系如下表所示:

使用gcc编译 使用g++编译
.c文件 C语言,调用cc1进行编译 C++语言,调用cc1plus编译
.cpp文件 C++语言,调用cc1plus编译 C++语言,调用cc1plus编译

通过查询gcc和g++的man page也可以发现,对这二者的描述均为GNU projects C and C++ Compiler。运行man gcc和man g++结果均为下图所示。
在这里插入图片描述
gcc和g++的比较

  1. 使用g+&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值