当前位置: 首页 > news >正文

什么是GCC 基础概念版

什么是GCC呢?

这里就说一下基础的一些概念,增加一些基础的知识面

GNU Compiler Collection 三个单词的简称就是GCC
GNU 编译器套件

是一组编译器和开发工具组合,可用于 Linux、Windows、Mac os多种 BSD 以及其他操作系统。
GNU 编译器套件包括 C 、C++ 、 Objective-C、Ada、Go、Fortran, 和 D 语言前端。
主要还是服务 C 、C++ 、 Objective-C

GCC如何工作

GCC 是一个工具链,用于编译代码,将代码与各种库依赖项连接,并为程序集,最后形成可执行文件。GCC 遵循标准的 UNIX 设计理念,工具简单,但效果和性能一流。GCC 开发组件利用多个分散的工具辅助软件编译。

在源代码文件上运行 GCC 时,首先,GCC 预处理头文件,并消除注释。接下来,标记代码,扩展宏,检测编译有无错误,然后准备编译。将预处理后的文件发送到编译器,编译器创建程序对象和控制流的语法树,并形成汇编代码。然后汇编器将此代码转换为系统的二进制可执行代码。最后,增加所需的外部库引用链接。最终,形成可在目标系统中执行的程序。

GCC,msvc ,clang 等啥区别

  1. msvc + vs sutdio 号称宇宙最强ide+编译器 (windows平台下) 是微软的 但是他的完全闭源的,

  2. gcc 有个最大的就是开源吧

GCC 最显著的优势可能是其 GPL 3(General Public license,通用公共许可证)许可证,用户可以因此自由使用软件。自由软件基金会相当支持这个项目,因此 GCC 社区也发展兴旺,开发人员集思广益,积极贡献,形成了一个良好的知识技术生态系统。

  1. clang ,clang出来就是解决gcc的耦合和扩展性差吧, 当时apple很多特性想让gcc支持,gcc响应比较慢,然后apple自己搞,发现gcc的耦合性太高了,于是自己另起炉灶 clang + llvm就出来了
    这里不多介绍了,后续文章在讲

end

本篇只讲一点基础概念 后续在说这些吧

相关文章:

  • 【云原生 | Kubernetes 系列】----使用Prometheus监控K8s集群
  • python基础(四、循环语句)
  • 视觉slam14讲 ——ch2实践部分
  • Android几种定时任务实现方式汇总
  • 【数据结构】哈夫曼编码与最优二叉树(哈夫曼树)
  • C++获取系统毫秒级时间(自1970年1月1日至今的毫秒数)
  • redis的详解和项目应用之PHP操作总结
  • 阿里、滴滴、华为等一线互联网分布式消息中间件:RocketMQ核心笔记
  • PostgreSQL的学习心得和知识总结(六十四)|关于PostgreSQL数据库 图式搜索(graph search)及递归查询 的场景说明
  • AI智能安防监控视频播放卡顿的原因排查与分析
  • 荧光染料Cy7 酰肼,Cy7 hydrazide,Cy7 HZ参数及结构式解析
  • OSPF——DR和BDR讲解
  • es的安装
  • 【SpringBoot】SpringBoot 读取配置文件中的自定义属性的 5 种方法
  • 前端的(typeScript)interface详解(个人学习用)
  • 自己简单写的 事件订阅机制
  • Docker下部署自己的LNMP工作环境
  • EOS是什么
  • flutter的key在widget list的作用以及必要性
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Linux后台研发超实用命令总结
  • PHP 的 SAPI 是个什么东西
  • react-native 安卓真机环境搭建
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 今年的LC3大会没了?
  • 使用putty远程连接linux
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​渐进式Web应用PWA的未来
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (11)MATLAB PCA+SVM 人脸识别
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (搬运以学习)flask 上下文的实现
  • (规划)24届春招和25届暑假实习路线准备规划
  • (图)IntelliTrace Tools 跟踪云端程序
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)创业的注意事项
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET Core 版本不支持的问题
  • .NET Framework杂记
  • .NET MVC之AOP
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net访问oracle数据库性能问题
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net知识和学习方法系列(二十一)CLR-枚举
  • ::before和::after 常见的用法
  • [20171102]视图v$session中process字段含义
  • [22]. 括号生成
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Android]通过PhoneLookup读取所有电话号码