编译器cc、CC、gcc、g++区别

看C语言经典教材《C程序设计语言》中,Linux下编译C代码用的是cc, 广为人知的C编译器的gcc, 还有CC、g++那么有啥差异呢

一、cc是Unix下C语言编译器,是c compiler的缩写。
cc是付费的。所以Unix的两个孩子Linux和Mac OS上的cc都是软连接。
0、Linux下(这里测试用的是Centos)

[root@izj6cfhaw27k49x8usszs3z ~]# which cc
/usr/bin/cc
[root@izj6cfhaw27k49x8usszs3z ~]# ls -l /usr/bin/cc
lrwxrwxrwx 1 root root 3 Jul 22  2018 /usr/bin/cc -> gcc
[root@izj6cfhaw27k49x8usszs3z ~]# which gcc
/usr/bin/gcc

可见,cc是gcc的软连接

1、MacBook Pro下

192:~ chuanbo7$ which cc
/usr/bin/cc
192:~ chuanbo7$ ls -l /usr/bin/cc
lrwxr-xr-x  1 root  wheel  5  5  2  2017 /usr/bin/cc -> clang
192:~ chuanbo7$ which clang
/usr/bin/clang

可见,cc是clang的软连接, clang是苹果公司发起的一个编译器合集(LLVM)的一部分,可编译C、C++、Objective-C和Objective-C++。Clang的出现目的是成为gcc的替代品。

二、CC是Solaris(类Unix)下的C++编译器
0、Linux下没有这个命令

[root@izj6cfhaw27k49x8usszs3z ~]# which CC
/usr/bin/which: no CC in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

1、MacBook Pro下CC是软连接

192:~ chuanbo7$ which CC
/usr/bin/CC
192:~ chuanbo7$ ls -l /usr/bin/CC
lrwxr-xr-x  1 root  wheel  5  5  2  2017 /usr/bin/CC -> clang

三、gcc是编译器套装GNU中编译C语言的编译器。

四、g++是编译器套装GNU中编译C++的编译器。

有关gcc和g++的区别可参考《gcc/g++区别

参考:
StackOverflow: Difference between CC, gcc and g++?维基百科Clang

发表评论

电子邮件地址不会被公开。 必填项已用*标注