【问题标题】:MSVC 2005 linker memory consumption problemMSVC 2005 链接器内存消耗问题
【发布时间】: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/…

标签: c++ c visual-studio


【解决方案1】:

我支持使用 DLL 的评论。长期以来困扰 Windows 的 DLL 版本问题,IMO 已经通过 Side by Side 组装系统得到解决。

如果它在 Visual Studio 2005 中可用,请尝试启用增量链接。

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多