前言
在ANSI C 的任何一种实现中,存在两个不同的环境:
- 第一种是编译环境,在这个环境下源代码被转换成可执行的机器指令。
- 第二种是执行环境,这个环境用于实际执行代码。
本篇文章重点了解程序在编译(翻译)环境会执行的操作。
为了可以更清楚的演示过程:这里创建了两个文件:
程序的翻译环境
程序的编译也叫做程序的翻译,主要可以分为这四个步骤:预编译、编译、汇编、链接。
前面我们得到了一份C语言源代码,它包括了两个文件:main.c
和sum.c
。我们的目的是需要计算出两个数的和(也就是执行出打印出两数之和的结果)。我们将可以执行结果的文件称为可执行文件。
在Windows中C语言源代码生成的可执行文件的扩展名一般是
.exe
在Linux中C语言源代码生成的可执行文件的扩展名一般是
.out
。
要得到可执行文件。我们需要先对每一份源文件预编译、编译、汇编。执行完这三个步骤后会得到两份目标文件(扩展名为:.o
)。然后链接文件以及需要的库就能够得到对应的可执行文件。
注意:如果有多个.c文件,那么编译器会单独处理每个源文件,生成