详解gcc的编译过程

2023-12-11 0 972

详解gcc的编译过程

1.预处理(Preprocessing)

输入文件:源代码文件(通常以 .c、.cpp、.c++、.h 等为扩展名)。
处理工具:预处理器(cpp)。
过程:预处理器会执行一系列的预处理操作,包括宏替换、文件包含、条件编译等。产生一个新的临时文件,通常以 .i 或 .ii 为扩展名。


gcc -E input.c -o output.i

2.编译(Compilation)

输入文件:预处理生成的文件(.i 或 .ii)。
处理工具:编译器(cc1)。
过程:编译器将源代码翻译成汇编代码。产生一个汇编文件,通常以 .s 为扩展名。


gcc -S output.i -o output.s

3.汇编(Assembly)

输入文件:编译生成的汇编文件(.s)。
处理工具:汇编器(as)。
过程:汇编器将汇编代码翻译成目标文件(机器码)。产生一个目标文件,通常以 .o 或 .obj 为扩展名。


gcc -c output.s -o output.o

4.链接(Linking)

输入文件:目标文件、库文件等。
处理工具:链接器(ld)。
过程:链接器将目标文件、库文件等合并生成最终的可执行文件。链接的过程包括地址解析、符号解析、重定位等。


gcc output.o -o executable

本文章已结束,如转载请注明:汇站网 » 详解 gcc 的编译过程

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

打赏二维码
点赞 (0)

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务