【发布时间】:2010-04-02 16:21:47
【问题描述】:
我正在尝试在 Visual Studio 2005 中为 Windows XP 构建一个解决方案。该解决方案包含 81 个项目(静态库、exe、dll),并且正在被我们的合作伙伴成功使用。我从他们的存储库中复制了解决方案包,并尝试在我们组中 3 台类似的机器上设置它。我在两台机器上都成功了,但解决方案无法在我的机器上构建。
在我的机器上构建遇到了两个问题:
在简单构建期间,最大静态库(在调试模式下约为 522Mb)的创建将失败并显示消息“13>libd\ui1d.lib:致命错误 LNK1106:无效文件或磁盘已满:无法查找0x20101879"
完整的解决方案重建会创建此库,但是在将库链接到主 .exe 文件时,devenv.exe 会生成 link.exe,它消耗大约 80Mb 的物理内存和 250MB 的虚拟内存并生成另一个链接。 exe,它的作用相同。这种情况一直持续到系统内存不足。在我同事的可以成功构建的 PC 上,只有一个 link.exe 进程使用了链接所需的所有内存(大约 500Mb 物理内存)。
我的机器上有足够的硬盘空间,文件系统是 NTFS。
我们的所有三个系统都相似 - Core2Quad 处理器、4Gb RAM、Windows XP SP3。我们正在使用从同一来源安装的 Visual Studio。
我尝试使用不同的 RAM 和 CPU,使用专用图形适配器来消除影响构建的视频内存共享的可能性,将解决方案文件放在不同的位置,使用不同版本的 VS 2005(专业版、标准版和团队套件),更改可用虚拟内存的数量,运行 memtest86 并从头开始构建项目(即干净的包)。
我已阅读what MSDN says about LNK1106,除了可能“堆空间不足”之外,没有其他情况适用于我,但是我不确定我应该如何解决这个问题。
我剩下的唯一想法是重新安装操作系统,但我不确定它是否会有所帮助,我不确定我的情况是否会在另一台机器上重演。
有人能给我什么建议吗?
谢谢
【问题讨论】:
标签: visual-studio linker libraries