MSVC 2005 链接器内存消耗问题
Posted
技术标签:
【中文标题】MSVC 2005 链接器内存消耗问题【英文标题】:MSVC 2005 linker memory consumption problem 【发布时间】:2010-11-02 12:19:26 【问题描述】:我有一个不寻常的问题。在我工作的公司,我们的代码库中有很多源代码,而且我们使用了很多第三方库。我们使用的是 MSVC 2005。
问题在于链接我们的可执行文件非常耗时(几分钟)。加上链接器的内存使用量达到 1.7 GB,而最终的可执行文件“只有”22 MB。
我们不使用 /ltcg(链接时代码生成)选项。
我猜链接器会立即加载所有依赖项的所有 OBJ 和 LIB。但是 OTOH 这实际上不是必需的:可以首先加载所有原始符号(没有相应的代码),构建依赖关系树。然后,使用这棵树,只加载相关的代码片段。
有人知道链接器的行为是否可以改变吗?也许存在相应的链接器选项。 这在 MSVC 2008/2010 中是否已修复?
谢谢
【问题讨论】:
也许不是您正在寻找的答案,但请考虑将所有 .lib 移动到 .dll。相应的库会变得很小,这将加快链接过程。 你是对的,我们考虑这个选项。然而,这会带来其他问题,例如所有 DLL 版本的混乱。谢谢。 我可能错了,但这对你有用吗? blogs.msdn.com/b/ddperf/archive/2010/04/29/… 【参考方案1】:我支持使用 DLL 的评论。长期以来困扰 Windows 的 DLL 版本问题,IMO 已经通过 Side by Side 组装系统得到解决。
如果它在 Visual Studio 2005 中可用,请尝试启用增量链接。
【讨论】:
以上是关于MSVC 2005 链接器内存消耗问题的主要内容,如果未能解决你的问题,请参考以下文章