我有一个不寻常的问题。在我工作的公司,我们的代码库中有很多源代码,而且我们使用了很多第 3 方库。我们使用的是 MSVC 2005。
问题是链接我们的可执行文件非常耗时(几分钟)。此外,链接器的内存使用量达到 1.7 GB,而最终的可执行文件“仅”为 22 MB。
我们不使用/ltcg(链接时代码生成)选项。
我想链接器会立即加载所有依赖项的所有 OBJ 和 LIB。但是 OTOH 这实际上不是必需的:可以首先加载所有原始符号(没有相应的代码),构建依赖关系树。然后,使用这棵树,只加载相关的代码片段。
有人知道链接器行为是否可以更改吗?也许存在相应的链接器选项。 这在 MSVC 2008/2010 中已修复吗?
谢谢
最佳答案
我同意说要使用 DLL 的评论。长期以来困扰 Windows 的 DLL 版本问题,IMO,通过 Side by Side 汇编系统得到了解决。
如果它在 Visual Studio 2005 中可用,请尝试启用增量链接。
关于c++ - MSVC 2005 链接器内存消耗问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077532/