1.GCC
GCC 代表“GNU Compiler Collection”,GCC是几种主要编程语言的发布的编译器集合,这些语言目前包括C,C++,Objective-C, Java, Fortran, Ada和Go.
GCC有三层含义:(1)如上所示;(2)以前代表“GNU C Compiler”;(3)GCC的与语言无关的部分:所有支持语言的编译器的共享部分。
GCC语言无关部分包括大部分优化器以及为不同处理器生成机器代码的后端。
与特定语言有关的编译器部分称为前端。
除了C语言大部分语言的编译器有它们自己的名字,C++编译器是G++, Ada编译器是GNAT,等。当编译这些语言的时候,可以使用它们编译器各自的名字或者使用GCC。
2.cc
cc原本是Unix系统的C Compiler,在Linux下cc是gcc符号的连接。可通过如下的命令查看:
ls -l /usr/bin/cc
结果是:/usr/bin/cc -> /etc/alternatives/cc
ls -l /etc/alternatives/cc
结果是:/etc/alternatives/cc -> /usr/bin/gcc
3.g++与gcc
两者有一些区别:后缀为.c的文件gcc把它当做c程序,g++当做c++程序。后缀为c++的两者都当做c++程序。对于cpp程序,无论gcc或者是g++编译阶段都是相同的,都是用的gcc进行编译,但是在链接阶段gcc不能自动和c++程序使用的库连接,如果使用的话,形如下: gcc helloworld.cpp -lstdc++ -o helloworld 。所以我们通常用g++来进行连接(g++会自动连接c++常用库),所以为了使用方便对于cpp程序干脆编译链接统统都使用g++。