gcc的编译过程(Linux)

GCC编译一共有4个阶段:预处理、编译、汇编、链接。

1.预处理-Pre-Processing。

// -E 选项指示编译器仅对输入文件进行预处理
// 对源代码文件头部、预编译语句进行分析,完成宏的替换和注释的消除。
g++ -E test.cpp -o test.i  
//输入为学好的 .cpp 文件,输出后缀为 .i 的文件

2.编译-Compiling。

// -S 选项告诉 g++ 在为 c++ 代码产生了汇编语言文件后停止编译
// 检查代码的规范性、是否有语法错误等,确认无误后,产生相应的汇编语言文件
g++ -S test.i -o test.s  
//输入为上一步产生的 .i 文件,输出后缀为 .s 的文件

3.汇编-Assembling。

// -c 选项告诉 g++ 仅把源代码编译为机器语言的目标代码
// 将汇编语言文件翻译成机器所需要的二进制文件
g++ -c test.s -o test.o  
//输入为上一步产生的 .s 文件,输出后缀为 .o 的文件

4.链接-Linking。

// -o 编译选项来为将产生的可执行文件用制定的文件名 
// 将汇编得到的二进制文件和系统其他组件(比如标准库、动态链接库等)结合起来
g++ test.o -o test  
//最终的test为可执行文件

以上的步骤执行完之后,可以依次vim预览一下其中的内容,会对整个编译过程有更深入的了解。
在这里插入图片描述

实际工作中很少做的那么复杂,都是直接一条命令搞定:

g++ test.cpp -o test 

参考链接:https://www.bilibili.com/video/BV1fy4y1b7TC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值