GCC/gcc/g++/CC/cc区别
平常在Linux上经常会用到gcc或者g++来编译程序,但对这两者的理解也就停留在一个是用来编译C程序,另一个是用来编译C++程序的(请注意:这种说法是有问题的,待会改进)。
1. GCC
GCC,是GNU Compiler Collection的缩写,表示的是GNU编译器套装,包含了gcc、g++。
gcc,是GNU C Compiler的缩写,包含于GCC。
g++,是GNU C++ Compiler的缩写,包含于GCC。
2. CC
CC是UNIX Compiler Command缩写。对于CC,则是跟具体平台相关的。根据stackoverflow的一个回答,摘录如下:
- On Solaris, CC is normally the name of the Sun C++ compiler
- On Solaris, cc is normally the name of the Sun C compiler
- On Linux, if it exists, CC is probably a link to g++.
- On Linux, cc is a link to gcc.
3. 区别与联系
3.1 对于gcc和g++区别,根据在CentOS 7上的实验证明
1)gcc和g++均能够编译并链接C语言程序;
2)对于仅包含C语言特性但文件后缀是cpp的程序,gcc是能够编译并链接的,但对于包含了C++语言特性的程序,gcc是无能为力的。这时就需要用到g++了。
3.2 对于CC在Linux上,根据在CentOS 7上的实验证明
1)cc确实是指向gcc的。输入命令ls -l /usr/bin/cc能得到“/usr/bin/cc->gcc”的结果。
2)CC并不存在,而是常用于Makefile文件中,作为对g++的指代,如CC=g++
更多资料:
Difference between CC, gcc and g++?
Difference between GCC and CC Compiler
GCC/gcc/g++/CC/cc区别的更多相关文章
- 【编程基础】编译器 cc、gcc、g++、CC 的区别
参考 1. 编译器 cc.gcc.g++.CC 的区别; 完
- cc、gcc、g++、CC的区别和联系
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...
- cc、gcc、g++、CC的区别概括
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...
- 转载 cc、gcc、g++、CC的区别概括
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...
- Linux中gcc与g++编译器的区别
一.对于C文件 对于C文件gcc和g++所做的事情确实是一样的,g++在编译C文件时调用了gcc. 二.对于C++文件 1.预处理 预处理gcc与g++做了相同的事. 2.编译 gcc无法自动和c++ ...
- 编译器 cc、gcc、g++、CC 的区别
gcc 是GNU Compiler Collection,原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C.C++.Objective-C.Ada.Fort ...
- cc、gcc、g++区别
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...
- macOS gcc g++ c++ cc
安装完Xcode之后,系统中默认的编译器不再是Gcc系列,编译一些库的时候经常产生问题. 在PATH变量中设置symbol link,把gcc,g++,c++,cc全链接到Gcc系列.
- GCC的gcc和g++区别
看的Linux公社的一篇文章,觉得不错,内容复制过来了. 其实在这之前,我一直以为gcc和g++是一个东西,只是有两个不同的名字而已,今天在linux下编译一个c代码时出现了错误才找了一下gcc和g+ ...
随机推荐
- RE模块错误已解决.
下面这个错误是由于在正则[...]的内部,减号'-'是一个有特殊含义的字符(代表字符范围) 所以如果需要在[...]内匹配减号'-',需要用反斜杠'\'转义. >>> import ...
- 小米手机无法连接eclipse调试解决方案
今天在做百度地图开发的时候,用genymotion调试一直出错,重启几次都是错的,后来我换成真机发现好了.当然我的小米3连接eclipse一直连不进去,折腾死我了,在网上查了很多资料,发现很多都不能用 ...
- Scikit-learn:模型选择Model selection
http://blog.csdn.net/pipisorry/article/details/52250983 选择合适的estimator 通常机器学习最难的一部分是选择合适的estimator,不 ...
- collection 中对类排序
首先 写出 一个person类 让他继承Comparable 构造函数和get/set不用说 我们要覆盖父类中的comparto方法 代码如下 省略get/set package a; public ...
- x264源代码简单分析:宏块编码(Encode)部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- Struts 1之DispatchAction
DispatchAction是struts 1 的内置通用分发器 import org.apache.struts.actions.DispatchAction; public class UserA ...
- 【java多线程系列】java中的volatile的内存语义
在java的多线程编程中,synchronized和volatile都扮演着重要的 角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性,可见性指的是当一 ...
- [ExtJS5学习笔记]第十九节 Extjs5中通过设置form.Panel的FieldSet集合属性控制多个field集合
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39209533 官方例子:http://docs.sencha.com/extjs/5. ...
- 手机微博(weibo.cn)模拟登录及页面解析
package com.laudandjolynn.test; import java.io.IOException; import java.io.OutputStream; import java ...
- ajax核心技术1---XMLHttpRequset对象的使用
AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.AJAX = 异步 Ja ...