关于VC Linker的/INCREMENTAL链接选项(转)
(2009-03-10 11:19:38)
转载▼
标签: | 分类: 编程 |
VCLinker默认会使用/INCREMENTAL选项产生incremental linking效果。使用此选项产生的exe或dll文件将比不使用此选项产生的文件要大一些,因为Linker会向代码中插入填料代码或数据。Linker这样做的目的是为了在代码有变化时不用重新产生整个exe或者dll,而只用将里面的填料替换掉,从而达到incrementallinking的目的。由于Linker向其中加入填料后,有可能会改变代码中某些变量或函数的地址,Linker在发现有这种情况发生时,会向其中插入必要的跳转指令,以保证函数调用的正确。
一般来说,这个选项能够加快链接速度,并且不会对最终生成的二进制代码的执行效果产生太大的影响,对于大型项目是很有用的,但有一种情况应当避免使用此选项。如果程序的执行依赖于最终生成的二进制代码中各种变量或函数的地址时,如果使用/INCREMENTAL选项进行链接,可能会使程序产生意想不到的错误,这种错误往往不合逻辑,很难调试。因此,在写此类程序时最好使用/INCREMENTAL:NO将这个选项关掉。
分享: 分享到新浪Qing
喜欢
已投稿到: |
加载中,请稍候......
后一篇:运用DelayLoad来优化运用程序地性能,拦截API(转)