GCC/gcc/g++那些事儿
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++的比较
- 使用g+&#