Я пытаюсь создать решение для Windows XP в Visual Studio 2005. Это решение содержит 81 проект (статические библиотеки, исполняемые файлы, библиотеки DLL) и успешно используется нашими партнерами. Я скопировал пакет решений из их репозитория и попытался установить его на 3 аналогичных компьютерах людей в нашей группе. Я был успешным на двух машинах, и решение не удалось построить на моей машине.
При сборке на моей машине возникли две проблемы:
Во время простой сборки создание самой большой статической библиотеки (около 522 МБ в режиме отладки) завершится ошибкой с сообщением «13> libd \ ui1d.lib: фатальная ошибка LNK1106: неверный файл или диск заполнен: невозможно найти 0x20101879"
Полная перестройка решения создает эту библиотеку, однако, когда дело доходит до связывания библиотеки с основным файлом .exe, devenv.exe порождает link.exe, который потребляет около 80 МБ физической памяти и 250 МБ виртуальной, и порождает другую ссылку. Отлично, что делает то же самое. Это продолжается до тех пор, пока система не исчерпает память. На компьютерах моих коллег, где можно было выполнить успешную сборку, существует только один процесс link.exe, который использует всю память, необходимую для компоновки (около 500 МБ физической).
На моем компьютере достаточно места на жестком диске, а файловая система - NTFS.
Все три наши системы похожи - процессоры Core2Quad, 4 ГБ ОЗУ, Windows XP SP3. Мы используем Visual Studio, установленный из того же источника.
Я пытался использовать разные ОЗУ и ЦП, используя выделенный графический адаптер, чтобы исключить возможность совместного использования видеопамяти, влияющего на сборку, переместить файлы решения в другое место, используя разные версии VS 2005 (Professional, Standard и Team Suite), изменив объем доступной виртуальной памяти, запуск memtest86 и сборка проекта с нуля (т. е. чистый пакет).
Я прочитал , что MSDN говорит о LNK1106 , ни один из случаев не относится ко мне, за исключением, может быть, "из кучи", однако я не уверен, как мне с этим бороться.
Единственная идея, которую я оставил, - это переустановка ОС, однако я не уверен, что это поможет, и я не уверен, что моя ситуация не повторится на другом компьютере.
Кто-нибудь даст мне какой-нибудь совет?
Спасибо