C/C++源程序到可执行程序exe的全过程(及汇编和反汇编的区别)

本文详细介绍了C/C++源程序如何通过预编译、编译、汇编和链接四个步骤转化为可执行的exe文件。内容包括预处理的主要任务,如宏替换、条件编译等,并通过实例解释了预编译、编译、汇编和链接的命令及其生成的中间文件。此外,还探讨了Microsoft Visual Studio的编译过程以及汇编和反汇编的区别。
摘要由CSDN通过智能技术生成

一个现代编译器的主要工作流程如下:

源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)。

简言之,源文件生成可执行文件的过程总共是经历了预编译/预处理,编译,汇编,链接这四个过程。

如下图所示:

下面用源文件test.c进行解释,test.c中代码为:

#include <stdio.h>
int main()
{
       printf("hello world!\n");
       return 0;
}

如输入命令:gcc test.c 

则会完成上述四个过程,直接默认生成可执行文件a.out

如下图所示:

gcc参数如下:

下面分别对上述四个过程进行说明。

1.预编译/预处理——生成test.i

命令:gcc -E test.c > test.i  或  gcc -E test.c -o test.i

注:只有预编译/预处理可以>重定向,因为 gc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值