关于VC++的增量链接(Incremental Linking)
来源:互联网 发布:mac与虚拟机共享文件 编辑:程序博客网 时间:2024/04/30 13:32
增量链接(Incremental Linking)这个词语在使用Visual C++时经常会遇到(其实
不只是VS系列,其它链接器也有这个特性), 就比如经常遇到的:上一个增量链接没有
生成它, 正在执行完全链接. 但是它是什么意思呢? 很多人只是经常看到, 但是不
明白这是什么. 首先说明一下, 这个特性是链接器为了<提高链接速度>而增加的功
能. 说是这样, 可能不理解, 下面就说说其原理:
有一个源代码文件, 你写了许多许多行, 你正在调试它, 你突然发现某个地方
有一个小BUG, 你打算改正, 好了, 错误改正了, 但是链接器该采用何种方式链接新代码?
其一: 可以把obj删除, 然后重新生成.
其二: 为每个函数预留一部分空间, 编译链接时, 只是修改你修改过的函数
对应的代码, 其它二进制代码保持不变.
可能你已经明白了, 为目标(函数)代码"预留一部分空间", 这就是"增量"的含
义. 当代码修改后, 只需要修改这一部分的目标代码即可快速完成编译与链接!
这就为调试代码时快速修改编译提高了速度! 这也是为什么调试器
支持 "Edit and Continue" 特性!
这不浪费程序空间么? 你可能会想, 不过确实如此. 正因为如此, Debug版本的
目标文件会远远大于Release版本的目标文件(不单因为此). 在Release编译时, 是
不能启用增量链接模式的!
好了, 先就介绍这些, 其实我也只是知道部分原理, 本文的讲解并不深入!
不只是VS系列,其它链接器也有这个特性), 就比如经常遇到的:上一个增量链接没有
生成它, 正在执行完全链接. 但是它是什么意思呢? 很多人只是经常看到, 但是不
明白这是什么. 首先说明一下, 这个特性是链接器为了<提高链接速度>而增加的功
能. 说是这样, 可能不理解, 下面就说说其原理:
有一个源代码文件, 你写了许多许多行, 你正在调试它, 你突然发现某个地方
有一个小BUG, 你打算改正, 好了, 错误改正了, 但是链接器该采用何种方式链接新代码?
其一: 可以把obj删除, 然后重新生成.
其二: 为每个函数预留一部分空间, 编译链接时, 只是修改你修改过的函数
对应的代码, 其它二进制代码保持不变.
可能你已经明白了, 为目标(函数)代码"预留一部分空间", 这就是"增量"的含
义. 当代码修改后, 只需要修改这一部分的目标代码即可快速完成编译与链接!
这就为调试代码时快速修改编译提高了速度! 这也是为什么调试器
支持 "Edit and Continue" 特性!
这不浪费程序空间么? 你可能会想, 不过确实如此. 正因为如此, Debug版本的
目标文件会远远大于Release版本的目标文件(不单因为此). 在Release编译时, 是
不能启用增量链接模式的!
好了, 先就介绍这些, 其实我也只是知道部分原理, 本文的讲解并不深入!
0 0
- 关于VC++的增量链接(Incremental Linking)
- 关于VC++的增量链接(Incremental Linking)
- 带你玩转Visual Studio——incremental linking(增量链接)的作用
- 带你玩转Visual Studio——incremental linking(增量链接)的作用
- 关于VC Linker的/INCREMENTAL链接选项
- INCREMENTAL(增量链接)
- /INCREMENTAL(增量链接)
- INCREMENTAL(增量链接)
- 关于VC Linker的/INCREMENTAL链接选项(转)
- VC++的增量链接
- 【调研】关于Entity Linking(实体链接)的材料收集
- 增量模型(Incremental Model)
- Incremental learning(增量学习)
- 增量开发(incremental development)
- 链接基本原理(Linking)
- 链接(Linking)
- Deep linking 深度链接
- 关于Visual C++增量链接以及.textbss
- jar
- 考研词汇 (IOS/Android)
- 归并排序
- 论文读书笔记-主题-查找同义词
- java基础的笔记
- 关于VC++的增量链接(Incremental Linking)
- activejdbc在maven中的save失败原因之一
- nova源码整体文件结构分析
- Linux内核剖析 之 内存寻址(一)
- synchronized详解
- 百度2014研发类校园招聘笔试题解答
- CCAnimation can NOT be run in CCLayer
- GitHub玩起来(持续更新一下做记录)
- 人造草坪在维护是应该注意哪些问题