gcc
来源:互联网 发布:windows 下载 编辑:程序博客网 时间:2024/04/29 23:41
http://blog.csdn.net/ce123_zhouwei/article/details/8220664
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。
GCC 内部结构主要由 Binutils、gcc-core、Glibc 等软件包组成。
1.Binutils:它是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具。关于 Binutils 的介绍可以参考 Binutils 简单介绍。这个软件包依赖于不同的目标机的平台。因为不同目标机的指令集是不一样的,比如 arm 跟 x86 就不一样。
2.gcc-core:顾明之意是 GCC 的核心部分,这部分是只包含 c 的编译器及公共部分,而对其他语言(C++、Ada 等)的支持包需要另外安装,这也是 GCC 为何如此强大的重要原因 。gcc-core依赖于 Binutils。
3.Glibc:包含了主要的 c 库,这个库提供了基本的例程,用于分配内存,搜索目录,读写文件,字符串处理等等。kernel 和 bootloader不需要这个库的支持。
编译命令为: gcc -o test test.c 编译生成 test 可执行文件。gcc 编译流程分为四个步骤:预处理、编译 、汇编、链接。个人认为预处理和编译主要由 gcc-core 来完成,汇编和链接主要由 Binutils 来完成。那么何时用到 glibc 呢?看到源码中的 printf 函数没有,这个函数在 GCC 中是以库函数的形式存在,这个库函数在 glibc 库中,在 stdio.h 头文件中被声明。
- gcc/
- gcc
- gcc
- gcc
- GCC
- gcc
- GCC
- gcc
- gcc
- GCC
- gcc
- Gcc
- gcc
- gcc
- GCC
- gcc
- gcc
- gcc
- 简单socket示例
- centos6.5 vnc服务安装配置
- ArcMap中地图输出(Options)选项显示不完整
- em单位的理解和使用
- java链表
- gcc
- 淘宝复制别人店宝贝相关问题
- docker(13):alpinelinux安装jenkins
- Ubuntu开机自动挂载磁盘分区
- maven命令行创建两个web模块化项目
- 自定义基于netty的rpc框架(1)
- [LeetCode]61. Rotate List
- Swift 中----字符串和字符
- 浅谈Java中的equals和==