首页 > 编程知识 正文

从源程序到可执行程序的过程,源程序能直接执行吗

时间:2023-05-04 19:27:41 阅读:185746 作者:1067

我想在刚开始学习c语言的时候,很多人都会感兴趣吧。 那就是我们用vc或vs写的后缀为. c的源文件如何成为后缀为. exe的可执行程序。

今天学到了一点有关这方面的内容,我来分享一下。 如果有错误的话,请改正。

ANSI C的任何一种实现都可以分为翻译环境和运行环境两个不同的环境;

翻译环境是指将源代码转换为可执行的机器指令。 执行环境是实际的执行代码。

在翻译环境中,可以分为编译和链接两个阶段。 编译可以生成目标文件,目标文件和标准C函数库中使用的函数通过链接生成可执行文件。

以gcc编译器为例:

编译:编译分为预处理程序处理、编译和程序集三个进程。

1 .预处理程序处理。 在此阶段,主要通过几个文本操作形成后缀为. I的文件,包括包含头文件、删除注释以及在define中定义的标识符替换级别的宏替换。

2 .编译,包括语法分析、词法分析、语义分析、符号摘要。 形成汇编代码。 后缀是. s

3 .汇编,制作符号表,将汇编代码转换为二进制指令,存储在test.o的目标文件中。

目标文件test.o是二进制文件

链接:包括合并段表、合并符号表和重新定位符号表,以及链接多个目标文件和库文件以生成可执行文件。

执行环境,即程序执行的过程:

1 .程序必须加载到内存中,一般由操作系统进行。

2 .程序开始执行,并调用main函数。

3 .开始执行程序代码。 程序使用运行时堆栈来存储函数的局部变量和返回地址。 此外,程序也使用静态存储器。 存储在静态存储器中的变量在程序运行期间一直保持。

4 .退出程序。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。