以下内容源于网络资源的学习与整理,如有侵权请告知删除。
参考博客:Difference Between GCC and CC Compiler - Ask Any Difference
参考博客:Linux新手学堂:CC与GCC的区别概括介绍 - Prayer - C++博客
总结
1、作用
GCC和CC都是编译器,用于将高级语言转换成低级语言。
2、名字含义
CC,全称为“C Compiler”,它是Unix系统用来编译C语言的编译器,只支持C语言的编译。
GCC,按照GNU的说法全称是“Gnu Compiler Collection”,包括很多编译器,比如C编译器、 C++编译器、Objective-C编译器、Fortran编译器和Java编译器等等。当调用gcc命令时,gcc根据文件扩展名自动识别并调用对应的编译器。
3、CC符号连接、CC变量
在Linux系统中,cc是gcc的符号链接。
xjh@ubuntu:~$ ls -l /usr/bin/cc lrwxrwxrwx 1 root root 20 十月 18 2017 /usr/bin/cc -> /etc/alternatives/cc xjh@ubuntu:~$ ls -l /etc/alternatives/cc lrwxrwxrwx 1 root root 12 十月 18 2017 /etc/alternatives/cc -> /usr/bin/gcc xjh@ubuntu:~$
另外CC也是make程序的内建变量(或者说“隐含变量”,见博客Makefile隐含规则_天糊土的博客-CSDN博客),就算Makefile中没有定义CC=xxx,该变量也会存在,并默认指向gcc。
CC符号链接与CC变量存在的意义在于源码的移植性。我们可以使用GCC来编译之前用CC编译的unix软件,甚至连Makefile都不要改;而且也便于linux程序在unix下的编译。
4、CC编译器和GCC编译器的取舍
GCC里的C语言编译器比CC强大,支持的新特性也多,没必要再使用CC。
CC只在Unix和类Unix操作系统上使用,而GCC可以在各种操作系统上使用。