GCC

原创

GCC

序号名称功能描述
1cppC预处理器
2gccC编译器
3g++C++编译器
4gccbug创建BUG报告的Shell脚本
5gcov覆盖测试工具,用于分析在程序的哪个位置做优化效果最佳
6libgccGCC运行库
7libstdc++标准C++库
8libsupc++提供支持C++语言的函数库
C/C++程序常用文件名后缀:
序号扩展名文件内容
1.a静态库,由目标文件构成的文件库
2.cC源码,必须经过预处理
3.C .cc .cppC++源码,必须经过预处理
4.hC/C++源码的头文件
5.i.c经过预处理得到的C源码
6.ii.C .cc .cpp经过预处理得到的C++源码
7.s汇编语言文件,是.i文件编译后得到的中间文件
8.o目标文件,是编译过程得到的中间文件
9.so共享对象库,也称动态库

gcc编译过程:

hello.chello(或a.out)文件,必须历经hello.ihello.shello.o,最后才得到 hello(或a.out)文件,分别对应着预处理编译汇编链接4个步骤,整个过程如图所示:

在这里插入图片描述

序号步骤工作内容
1预处理PreprocessingC 编译器对各种预处理命令进行处理,包括
(1)头文件包含
(2)宏定义的扩展
(3)条件编译的选择
2编译Compilation预处理后的文件进行词法分析语法分析语义分析优化后,生成相应的.s汇编文件
3汇编Assemble编译后的汇编代码翻译成机器码,生成.o目标文件
4链接Linking通过链接器ld目标文件库文件链接在一起,生成可执行文件

链接可分为动态链接静态链接

序号链接描述
1动态链接使用动态库进行链接,生成的程序在执行的时候需要加载所需的动态库才能运行。
动态链接生成的程序小巧,但是必须依赖动态库,否则无法执行
2静态链接使用静态库进行链接,生成的程序包含程序运行所需要的全部库,可以直接运行,不过体积较大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值