2012-12-26 45 views

回答

3

應該是將-Wl,--large-address-aware添加到鏈接標誌的情況。我不使用CodeBlocks,所以不能告訴你如何一步一步做到這一點,但是我確定在項目設置中有一個「鏈接選項」組件,您可以將此字符串添加到該組件中。

連接選項: http://sourceware.org/binutils/docs-2.17/ld/Options.html

編輯:當然,如果你有足夠的現代化GCC-MinGW的系統上,你應該能夠給它-m64爲編譯和鏈接階段,並獲得一個原生的64位應用程序,在這一點上,你可以使用盡可能多的內存,只要你喜歡(直到你用盡了交換空間或48位地址範圍,以先到者爲準 - 可能交換空間 - 除非你有超過256TB磁盤空間......)

+0

當它達到2GB(VRAM上的1,3GB,RAM上的800 MB)並且還需要更多時,它仍在使用SWAP。 實際內存使用情況:VRAM上爲1,3GB,RAM上爲0.8GB,SWAP上爲0.8GM,空閒內存(RAM)爲1.500GB ...... – Skides

+1

這是別的 - 可能窗戶像往常一樣愚蠢。交換對LARGE_ADDRESS_AWARE沒有任何影響。爲了證明這一點,嘗試編寫一段代碼,它只分配大量內存 - 比如說大小爲100MB的內存,並查看可以分配多少個內存(不帶'LARGE_ADDRESS_AWARE)(您也可以通過寫入字節每塊1M左右 - 你不想填滿整個東西,因爲它需要幾秒鐘才能填充幾GB的內存,即使它不是交換)。不幸的是,我不知道一個「不要跟我呆呆」的標誌......使用linux? –