• 什么是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

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

  • 相关阅读:
    Protobuf协议初级详解(python使用)从安装到序列化-反序列化
    跨域及cors解决跨域
    eclipse进入断点之后,一直卡死,线程一直在运行【记录一种情况】
    In-Context Retrieval-Augmented Language Models
    【SDV让汽车架构“和而不同”】
    【云原生】四、Docker 存储管理
    Webapck 解决:[webpack-cli] Error: Cannot find module ‘vue-loader/lib/plugin‘ 的问题
    SFI立昌SEV系列方案与应用
    使用AWK进行文本处理
    LeetCode 594. Longest Harmonious Subsequence
  • 原文地址:https://blog.csdn.net/weixin_42837024/article/details/126606879