什么是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 等啥区别
-
msvc + vs sutdio 号称宇宙最强ide+编译器 (windows平台下) 是微软的 但是他的完全闭源的,
-
gcc 有个最大的就是开源吧
GCC 最显著的优势可能是其 GPL 3(General Public license,通用公共许可证)许可证,用户可以因此自由使用软件。自由软件基金会相当支持这个项目,因此 GCC 社区也发展兴旺,开发人员集思广益,积极贡献,形成了一个良好的知识技术生态系统。
- clang ,clang出来就是解决gcc的耦合和扩展性差吧, 当时apple很多特性想让gcc支持,gcc响应比较慢,然后apple自己搞,发现gcc的耦合性太高了,于是自己另起炉灶 clang + llvm就出来了
这里不多介绍了,后续文章在讲
end
本篇只讲一点基础概念 后续在说这些吧