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可以在各种操作系统上使用。
GCC编译器和CC编译器的区别相关推荐
- AI编译器与传统编译器的联系与区别
AI编译器与传统编译器的区别与联系 总结整理自知乎问题 针对神经网络的编译器和传统编译器的区别和联系是什么?. 文中提到的答主的知乎主页:@金雪锋.@杨军.@蓝色.@SunnyCase.@贝壳与知了. ...
- linaro公司:交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别
交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别 从授权上,ARM交叉编译工具链分为免费授权版和付费授权版. 免费版目前有三大主流工具商提供,第一是G ...
- 更改Ubuntu gcc、g++默认编译器版本
更改Ubuntu gcc.g++默认编译器版本 转一篇文章: 升级Ubuntu到11.10,但在编译Android的时候出错了.这个Android在升级系统之前编译是没有错误的,对比发现升级到Ubun ...
- 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )
文章目录 一.protoc 编译器简介 二.下载 protoc 编译器 三.使用 protoc 编译器编译 addressbook.proto 源文件 四.参考资料 一.protoc 编译器简介 在上 ...
- 传统编译器和DL编译器的调研和理解
文章目录 Part One : 传统编译器 1.1 前端 1.2 中端 常见的优化 1.3 后端 指令的选择 寄存器分配 指令重排 1.4 总结 Part Two:深度学习编译器 2.1 为什么需要 ...
- Linux账户标识R=400是什么意思_带你阅读linux内核源码:通俗讲解编译器、交叉编译器和大小端...
欢迎关注"技术简说",持续分享linux内核和驱动开发干货. 本文内容包括: 编译器和交叉编译器的介绍 交叉编译器的命名规则 如何交叉编译C代码 大端.小端的通俗讲解 如何判断你的 ...
- linux安装方舟编译器,华为方舟编译器安装 软件源码地址,华为方舟编译器安装 软件源码地址预约 - 浏览器家园...
华为方舟编译器下载安装 软件源码下载地址 2019华为全球开发者大会将在8月9日-11日在华为松山湖基地召开.本次开发者大会邀请了1500位合作伙伴.5000名全球开发者,将是华为历来规模最大的一次会 ...
- 执行引擎、解释器、编译器、JIT编译器的恩怨情仇
学习宋红康老师的JVM课程已经有一段时间了,学习过程中发现,有些内容遗忘得很快,虽然自己也用印象笔记记录了,但是如果没有输出,知识仍然不能完全地消化.因此,决定在JVM专栏中记录和总结学过的内容,欢迎 ...
- 传统编译器与神经网络编译器
传统编译器与神经网络编译器 传统编译器 以LLVM(low level virtual machine)为例,输入是高级编程语言源码,输出是机器码,由一系列模块化的编译器组件和工具链组成. LLVM通 ...
最新文章
- st2045 漏洞反弹root shell
- tensorflow神经网络结构可视化
- 阿里神器Arthas 3.1.2版本发布,新特性解读
- 为什么有的人喜欢夜间工作_为什么开发人员喜欢在夜间编码
- weblogic IllegalArgumentException 解决办法
- 7.Linux 高性能服务器编程 --- Linux 服务器程序规范
- Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 1.1. 不个网页title保存成个个文件的时候儿有无效字符的问题...	1
- SpringMVC防止表单重复提交
- 如何实现文件的双向自动同步备份?
- 京东商城选择地址信息
- hosts文件导致无法网页观看视频
- 2018年机器视觉产业技术现状、发展趋势分析及发展前景预测
- 微信小程序怎么开通(自己申请开通微信小程序的方法)
- 第五章习题——C程序设计(第四版)
- 拓嘉辰丰电商:拼多多新上架的新品要不要做
- java springboot房地产信息管理系统+实训报告+PPT+功能需求报告
- 三维点云到人体重建(七)
- pushd和popd批处理_提示以及PushD和PopD
- 机器学习算法——决策树4(剪枝处理)
- vue 项目进行直播视频 vue-video-player