2.1 程序的生命周期
程序的生命周期分为以下四个阶段:
(1)编写源代码:借助代码编辑器,遵循开发语言的编码规则,编写代码,这是程序生命周期的 开始。
(2)编译:代码编写完成后,就进入编译阶段。编译指的是将高级语言编写的源代码翻译成低级语言描述的代码的过程。编译器负责程序的编译。编译器的输入是一个编译单元,编译单元通常是一个包含源代码的文本文件。一个程序通常会包括多个编译单元。编译过程的输出就是产生一个个二进制目标文件,也就是.o(或者.obj)文件,每一个目标文件都对应于一个编译单元。换言之,每一个.o(或者.obj)文件都对应一个同名的C/C++文件,如main.o对应于main.c。
(3)链接:链接过程的输入是目标文件的集合,最终生成可执行文件。链接过程包含了重定位、 解析引用等阶段。链接的三种方法:
- 利用目标文件进行链接。
- 利用静态库链接。
- 利用动态库链接。
(4)装载:就是把程序装载到内存。它是程序运行中不可或缺的一个步骤,加载器会将程序放置在存储器中,让他开始运行。当加载完成之后,操作系统会将控制权交给加载的代码,让他开始运作。
(5)执行:程序开始运行。
2.2 关于编译的题外话
(1)低级语言通常指的是汇编语言,甚至有些时候就是机器代码。
(2)交叉编译:如果代码在一个平台上进行编译,而执行却在另外的平台上,那么这种编译过程就称为交叉编译。例如:进行单片机的开发时,程序的编译在Windows上,最终程序是下载到单片机上执行。
(3)反编译(反汇编):是指将低级语言编写的源代码转换成高级语言描述的源代码的过程。
(4)C/C++是典型的编译型语言,必须经过编译才可以执行。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142706.html