二、编译的相关概念

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++是典型的编译型语言,必须经过编译才可以执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值