我想在Visual Studio 2005中爲Windows XP構建解決方案。此解決方案包含81個項目(靜態庫,exe的,dll),正在成功使用我們的夥伴。我從他們的存儲庫複製瞭解決方案包,並嘗試在我們小組的3個類似機器上進行設置。我在兩臺機器上取得了成功,解決方案無法在我的機器上構建。鏈接失敗與異常內存消耗或LNK1106在Visual Studio 2005中
我的機器上構建遇到了兩個問題:
在一個簡單的構建創造最大靜態庫(約522Mb在調試模式)將失敗消息「13> LIBD \ ui1d.lib :致命錯誤LNK1106:無效文件或磁盤已滿:無法找到0x20101879「
完整解決方案重建創建此庫,但是,消耗大約80Mb的物理內存和250MB的虛擬併產生另一個link.exe,它也是如此。這一直持續到系統內存不足。在可以執行成功構建的我的同事的PC上,只有一個link.exe進程使用所有連接所需的內存(大約500Mb物理)。
我的機器上有很多硬盤空間,文件系統是NTFS。
我們所有的三個系統都是類似的 - Core2Quad處理器,4Gb的RAM,Windows XP SP3。我們使用從同一個源安裝的Visual Studio。
我試過使用不同的RAM和CPU,使用專用圖形適配器來消除視頻內存共享影響構建的可能性,將解決方案文件放到不同位置,使用不同版本的VS 2005(Professional,Standard和Team Suite)改變可用虛擬內存的數量,運行memtest86並從頭開始構建項目(即一個乾淨的包)。
我已閱讀what MSDN says about LNK1106,這些情況都不適用於我,除了可能「堆空間不足」,但我不知道該如何應對。
我留下的唯一想法是重新安裝操作系統,但是我不確定它會有幫助,我不確定我的情況不會在不同的計算機上重複。
會有人對我有任何建議嗎?
由於
你能解釋一下這個嗎?我認爲4GB是可以在32位Windows上分配的最大連續內存塊的大小。我錯了嗎? – Corvin 2010-04-02 16:48:01
@Corvin:4GB是完整的32位地址空間大小。操作系統和內存映射設備獲得上半部分。下半部分可用於任何用戶程序,但包含代碼和數據的混合。內存是從未映射的空間中分配的。 – 2010-04-02 16:53:29