写makefile时候的cc和gcc
Linux 下 的 cc 和 gcc
Linux 下 的 cc 和 gcc
周银辉
在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子。它们是同一个东西么,有啥区别呢
一分为二地看:
首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西。cc来自于Unix的c语言编译器,是 c compiler 的缩写。gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c++。
其次, 如果讨论范围仅限于Linux,我们可以认为它们是一样的,在Linux下调用cc时,其实际上并不指向unix的cc编译器,而是指向了gcc,也就是说cc是gcc的一个链接(快捷方式),看看下面的终端输出就明白了:
zhouyinhui@zhouyinhui-laptop:/etc/alternatives$ which cc
/usr/bin/cc
zhouyinhui@zhouyinhui-laptop:/etc/alternatives$ ls -al /usr/bin/cc
lrwxrwxrwx 1 root root 20 2010-01-20 23:56 /usr/bin/cc -> /etc/alternatives/cc
zhouyinhui@zhouyinhui-laptop:/etc/alternatives$ ls -al /etc/alternatives/cc
lrwxrwxrwx 1 root root 12 2010-01-20 23:56 /etc/alternatives/cc -> /usr/bin/gcc
为什么会这样,很简单,为了兼容性:
cc是Unix下的,是收费的,可不向Linux那样可以那来随便用,所以Linux下是没有cc的
然后,问题来了,如果我的c/c++项目是在Unix下编写的,在写makefile文件时自然地用了cc,当将其放到Linux下这无法make了,必须将其中的cc全部修改成gcc。这太麻烦了哈,所以,Linux这想了这么一个方便的解决方案:不修改makefile,继续使用cc,这个cc是个“冒牌货”,它实际指向gcc。
写makefile时候的cc和gcc的更多相关文章
- 怎么写makefile?(转)
跟我一起写 Makefile 陈皓 第一章.概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 pr ...
- 跟我一起写 Makefile
转自 陈皓 的博客:http://blog.csdn.net/haoel/article/details/2886 1. 概述 2. 关于程序的编译和链接 3. Makefile 介绍 4. Make ...
- 【转载】Linux下makefile详解--跟我一起写 Makefile
概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...
- 【转】[精华] 跟我一起写 Makefile
陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,m ...
- Linux 下 的 cc 和 gcc
在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子.它们是同一个东西么,有啥区别呢? 一分为二地看: 首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西.cc ...
- (转)跟我一起写MAKEFILE
概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...
- 跟我一起写 Makefile(一)
跟我一起写 Makefile 陈皓 概述—— 什么是makefile?也许非常多Winodws的程序猿都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我认为要作一个好的和pro ...
- 怎样写Makefile文件(C语言部分)
本文摘抄自"跟我一起写Makefile ",只是原文中我自己感觉比较精要的一部分,并且只针对C语言,使用GCC编译器. 原文请看这里:http://wiki.ubuntu.org. ...
- 跟我一起写Makefile
跟我一起写Makefile 来源 https://blog.csdn.net/fhaitao900310/article/details/82657193 陈皓 (博客地址:http://blog. ...
随机推荐
- 音频处理之去噪算法---基于pcm和g711的音频16000hz、8bit去噪声算法
(1)应用背景 (2)主要降噪算法原理 (3)算法流程 (4)算法实现 (5) ------------author:pkf -------------------time:2-6 --------- ...
- 基于python的七种经典排序算法(转)
一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性:经过某种排序后,如果两个 ...
- ios -bitmap上下文生成图片 生成水印
- (void)test { // 0. 加载背景图片 UIImage *image = [UIImage imageNamed:@"psb"]; // 1.创建bitmap上下文 ...
- eclipse 4.3 汉化
打开浏览器,浏览“参考资料”内给出的“eclipse语言包下载”地址,在博客新页面找到地址链接,如图所示.“Babel Language...”开头的一栏下面就是各个eclise版本的语言包,此处以I ...
- iOS开发笔记--如何实现程序长时间未操作退出
我们使用金融软件经常会发现手机锁屏或者长时间未操作就会退出程序或者需要重新输入密码等情况.下面让我们看一下如何实现这种功能.我们知道iOS有一个事件循环机制,也就是大家所说的runloop.我们在对程 ...
- 一道Google面试题——基数排序思想
题目描述: 一个大小为n的数组,里面的数都属于范围[0,n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间. 算法分析: 这个题目要求用O(n)的时间复杂度,这意味着只 ...
- [Spring Data MongoDB]学习笔记--MongoTemplate查询操作
查询操作主要用到两个类:Query, Criteria 所有的find方法都需要一个query的object. 1. 直接通过json来查找,不过这种方式在代码中是不推荐的. BasicQuery q ...
- Java工程师面试题整理[社招篇]
http://blog.csdn.net/jackfrued/article/details/44921941 1.面向对象的特征有哪些方面?2.访问修饰符public,private,protect ...
- android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图
1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...
- 亚马逊订单api重构 api异常入库 在php中执行python
https://docs.python.org/2/library/xml.etree.elementtree.html python 较 php能更高效第处理xml xpth php 扮演什么角 ...