一、《C++入门学习》—2. 编译、链接流程

《C++入门学习》首页

编译、链接入门

对于很多在IDE上进行编程的朋友来说,最容易忽略的就是代码从编辑到最终运行的过程。因为在IDE上,我们通常只需要点个按钮即可完成代码的运行。我想这是IDE能提升效率的一面,但同时,对于一个初学者来说,我们还是需要探究下背后的原理。

在这里推荐一本书 —— 《程序员的自我修养》,其中详细讲解了程序的编译、链接、装载流程。



一、为什么需要编译、链接?

开发人员计算机 之间的关系就像两个说不同语言的人一样。无法直接用各自的语言进行沟通,所以我们可以选择以下几种方式:

  • 掌握对方的语言
    对于 计算机 而言,他们语言叫做 微代码。如果你学习过微机原理,你应该有写过微代码,一大串01组成的微指令。如果我们掌握了这个语言,那就可以和计算机进行沟通了,但是代价太大,沟通起来的效率也很低。

  • 翻译官
    翻译官负责把我们说的语言转换成对方可以听懂的语言,对于程序员和计算机来说,翻译官有如下几个:

汇编器

在高级语言(C/C++/Java)出现之前,为了简化编程,发明了汇编这种符号式语言,而汇编器(Assembler)就是将汇编语言翻译为机器语言的程序。一般而言,汇编生成的是目标代码,需要经链接器(Linker)生成可执行代码才可以执行。

编译器

随着高级语言的诞生,我们就需要先将高级语言转换为汇编语言,编译器就是这样一个把高级语言转换为低级语言的工具。

解释器

解释器是一种特殊的翻译器,通常用在脚本语言、动态语言中,例如 JS、Perl、Python等。它和编译器的主要区别就是在将高级语言转换为目标语言后,会立即执行,并且每一次都会执行。而编译器只需编译一次,多次运行。所以解释器的运行效率会低于编译器,但是跨平台性比编译器好。为了提高动态语言的运行效率,又延申出 JIT (即使编译)技术。

下面我们主要介绍 编译型 语言的编译、链接流程。



二、编译、链接基本流程

编译、链接大概流程

下一篇我们会对上图中的 预处理器、编译器、汇编器、链接器的具体作用以及在GCC套件中的对应工具进行说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值