【面经笔记】操作系统:编译过程

C++从源代码到可执行文件经过了哪些过程?

  • 预处理:

    将所有的#define删除,并且展开所有的宏定义
    处理预编译指令
    删除所有注释 “//”和”/* */”。
    添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号。
    保留所有的#pragma编译器指令,因为编译器需要使用它们。

  • 编译:

    编译过程就是把预处理完的文件生成相应汇编代码。

  • 汇编

    汇编器是将汇编代码转变成机器可以执行的命令,生成目标文件。每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单。

  • 链接

    通过调用链接器来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件


链接详细过程

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

链接器的作用是分离编译,我们不需要将大型应用程序组织为巨大的源文件,可以把它分解为更小、更好管理的模块,可以独立地修改和编译这些模块。

链接器主要完成两个任务:

1 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值