0

我正在尝试在 Visual Studio 2005 中为 Windows XP 构建解决方案。该解决方案包含 81 个项目(静态库、exe、dll),并且正在被我们的合作伙伴成功使用。我从他们的存储库中复制了解决方案包,并尝试在我们组中 3 台类似的机器上设置它。我在两台机器上都成功了,但解决方案无法在我的机器上构建。

我机器上的构建遇到了两个问题:

  1. 在最大静态库(调试模式下约为 522Mb)的简单构建过程中,将失败并显示消息“13>libd\ui1d.lib:致命错误 LNK1106:无效文件或磁盘已满:无法查找 0x20101879”

  2. 完整的解决方案重建创建了这个库,但是在将库链接到主 .exe 文件时,devenv.exe 会生成 link.exe,它消耗大约 80Mb 的物理内存和 250MB 的虚拟内存并生成另一个 link.exe,它的作用相同. 这种情况一直持续到系统内存不足。在可以成功构建的同事的 PC 上,只有一个 link.exe 进程使用链接所需的所有内存(大约 500Mb 物理内存)。

我的机器上有足够的硬盘空间,文件系统是 NTFS。

我们所有的三个系统都是相似的——Core2Quad 处理器、4Gb RAM、Windows XP SP3。我们正在使用从同一来源安装的 Visual Studio。

我尝试使用不同的 RAM 和 CPU,使用专用图形适配器来消除影响构建的视频内存共享的可能性,将解决方案文件放在不同的位置,使用不同版本的 VS 2005(专业版、标准版和团队套件),改变数量可用的虚拟内存,运行 memtest86 并从头开始构建项目(即一个干净的包)。

我已经阅读了 MSDN 关于 LNK1106的说法,除了“堆空间不足”之外,没有任何情况适用于我,但是我不确定我应该如何解决这个问题。

我留下的唯一想法是重新安装操作系统,但是我不确定它是否会有所帮助,我不确定我的情况不会在另一台机器上重演。

有人对我有什么建议吗?

谢谢

4

1 回答 1

2

是的,522 兆字节大约相当于可以在 32 位版本的 Windows 上分配的连续虚拟内存块。那是一个庞大的大型图书馆,您必须将其拆分。

您可以通过在 64 位版本的 Windows 上构建来推迟不可避免的情况,32 位程序可以获得更大的虚拟内存空间,接近 4 GB。

于 2010-04-02T16:40:01.860 回答