114

我查看了 Microsoft 的 MSDN 和整个网络,但我仍然无法真正了解它是什么。

这是否意味着已完成的程序在其执行期间的不同时间加载 DLL,就像在启动时同时加载一样?

我完全走投无路了吗?:)

4

2 回答 2

127

链接涉及将从您的源文件构建的所有 .obj 文件以及您引用的任何 .lib 文件打包到您的输出中(例如 .exe 或 .dll)。

如果没有增量链接,每次都必须从头开始。

增量链接以某种方式链接您的 exe/dll,当您进行小的更改并重新编译时,链接器可以更轻松地更新现有的 exe/dll。

因此,增量链接只会让编译和链接项目变得更快。

它可能具有的唯一运行时影响是它可能会使您的 exe/dll 稍微变大和变慢,如下所述:

http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx

编辑:正如 Logan 所提到的,增量链接也与链接时间代码生成不兼容- 因此失去了可能的性能优化。

您可能希望对调试构建使用增量链接来加速开发,但在发布构建时禁用它以提高运行时性能。

延迟加载的 DLL 可能是您所想的:

http://msdn.microsoft.com/en-us/library/151kt790.aspx

于 2010-07-28T02:52:52.863 回答
15

此外,非常重要的是,增量链接是一个先决条件Edit&Continue- 可以编辑您的代码并即时重新编译它,而无需重新启动。

因此,在调试版本上使用是一件好事,而不是在发布版本上。

于 2014-04-22T15:30:04.137 回答