GCC编译器和CC编译器的区别

以下内容源于网络资源的学习与整理,如有侵权请告知删除。

参考博客

Difference Between GCC and CC Compiler - Ask Any Difference

Linux新手学堂:CC与GCC的区别概括介绍 - Prayer - C++博客

一、作用

GCC编译器与CC编译器,它们都是编译器,用于将高级语言转换成低级语言。

二、名字的含义

CC的全称为“C Compiler”,它是Unix系统用来编译C语言的编译器,只支持C语言的编译。

GCC的全称是“Gnu Compiler Collection”,是很多编译器的集合,比如C编译器、 C++编译器、Objective-C编译器、Fortran编译器和Java编译器等等。当调用gcc命令时,GCC编译器会根据文件扩展名自动识别并调用对应的编译器。

三、符号连接cc、变量CC

(1)在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:~$ 

(2)大写的CC是make程序的一个内建变量(或者说“隐含变量”,见博客Makefile隐含规则),换句话说,就算在Makefile中没有定义CC=xxx,该变量也会存在,其值为cc,即默认指向gcc命令。

xjh@ubuntu:~/iot/tmp$ cat Makefile 
ALL:
	@echo ${CC} #这里是大写的CC
xjh@ubuntu:~/iot/tmp$ make
cc              #输出是小写的cc,也就是变量CC的值是cc,即CC = cc
xjh@ubuntu:~/iot/tmp$

(3)符号链接cc与变量CC存在的意义在于源码的移植性。我们可以使用GCC编译器来编译之前用CC编译器编译的unix软件,甚至连Makefile都不要改;反过来也便于linux程序在unix下的编译。

四、 CC编译器和GCC编译器的取舍

GCC里的C语言编译器比CC强大,支持的新特性也多,没必要再使用CC。

CC只在Unix和类Unix操作系统上使用,而GCC可以在各种操作系统上使用。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天糊土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值