我正在開發一個Windows遊戲,需要很多小的不同圖像,我把它放在resources.qrc中,它們在tot中。 14MB。Qt編譯錯誤:「內存不足分配134mb」「cc1plus.exe未找到」
當我嘗試編譯唯一的錯誤是:「內存分配134mb」「cc1plus.exe未找到」。
我該如何處理? 非常感謝。
我正在開發一個Windows遊戲,需要很多小的不同圖像,我把它放在resources.qrc中,它們在tot中。 14MB。Qt編譯錯誤:「內存不足分配134mb」「cc1plus.exe未找到」
當我嘗試編譯唯一的錯誤是:「內存分配134mb」「cc1plus.exe未找到」。
我該如何處理? 非常感謝。
不要將它們放在qrc中,將它們作爲單獨的資源(或每個圖像的新qrc文件),並在應用程序啓動時加載它們。 Qt生成一個qrc_XXXXX.cpp文件,它有效地將二進制數據以所有資源的字符數組形式插入到資源文件XXXXXX中(對於14MB的圖像,即:14680064字節(寫爲hex( 0xXX)字節放到1個文件中......它會很大!),極有可能是可憐的編譯器只是在他們身上咳嗽......
那麼,這個問題也有。但在我的情況下,所有資源.exe
是必要的。
這個錯誤後,我購買額外的RAM(項目是非常重要的),然後我的RAM成了12 GB(6 GB)。
但我很驚訝,當錯誤沒有dissaperared :)後最後,我找到了答案there。問題是cc1plus.exe
可執行內存限制。因此,在Qt中的情況下,這個問題可以在這個步驟解決(適用於Windows 7,MINGW32 4.9.2,別人可能只需要更改路徑):
bcdedit /set IncreaseUserVa 3072
cd C:\Qt\Tools\mingw492_32\libexec\gcc\i686-w64-mingw32\4.9.2
C:\masm32\bin\editbin.exe /LARGEADDRESSAWARE cc1plus.exe
這就是全部。希望這會有所幫助:)
謝謝,花了我很長時間才意識到,你需要editbin.exe在win32可執行文件上設置largeaddressaware標誌。 – DanC225
的Windows 7SP1 86 4GB內存 的Qt 5.7.0
我有同樣的問題,當我在Qt中添加大文件中的資源,我有錯誤:
cc1plus.exe:-1: error: out of memory allocating 1073745919 bytes
解決方案:
添加CONFIG += resources_big
到*.pro
文件。
我把它在這裏:https://forum.qt.io/topic/62655/cc1plus-exe-out-of-memory-60mb-encrypted-resource-file/8
@fritzone謝謝您的回答,我不知道如何加載我的文件,而無需QRC,因爲我一直用它。你能給我一個鏈接或一些代碼來做到這一點?非常感謝你。 –