2012-09-01 5 views
5

मैं एक विंडोज़ खेल है कि छोटे विभिन्न छवियों का एक बहुत जरूरत के विकास कर रहा हूँ, कि मैं resources.qrc में डाल दिया, वे मुन्ना में हैं। 14mb।क्यूटी संकलन त्रुटि: "स्मृति आवंटन 134mb से बाहर" "नहीं मिला cc1plus.exe"

जब मैं केवल त्रुटि संकलन करने की कोशिश है: "स्मृति आवंटन 134mb से बाहर" "नहीं मिला cc1plus.exe"।

मैं इसे कैसे प्रबंधित कर सकता हूं? बहुत बहुत धन्यवाद।

+0

आपके उत्तर के लिए @fritzone धन्यवाद, मैं, कैसे QRC के बिना अपनी फ़ाइलें लोड करने के लिए पता नहीं है के बाद से मैं हमेशा यह प्रयोग किया जाता है। क्या आप कृपया मुझे एक लिंक या कुछ कोड दे सकते हैं? आपका बहुत बहुत धन्यवाद। –

उत्तर

7

उन्हें QRC में डाल मत करो, उन्हें अलग-अलग संसाधन (या छवि से प्रत्येक के लिए एक नया QRC फाइल) के रूप में रखने के लिए, और सिर्फ आवेदन स्टार्टअप पर उन्हें लोड। क्यूटी एक qrc_XXXXX.cpp फ़ाइल उत्पन्न करता है जहां यह प्रभावी रूप से इस फ़ाइल में संसाधन फ़ाइलXXXXX में आपके सभी संसाधनों के चार सरणी के रूप में बाइनरी डेटा डालता है (हाँ, 14 एमबी की आपकी छवियों के लिए एक सरणी, यानी: 14680064 बाइट्स (हेक्स के रूप में लिखा गया है (0xXX) बाइट्स 1 फाइल में ... यह बड़ा होगा!), अत्यधिक संभवतः खराब कंपाइलर सिर्फ उन पर खांसी ...

3

ठीक है, इस समस्या को भी था। लेकिन मेरी स्थिति में सभी संसाधनों को .exe में जरूरी था ।

इस त्रुटि के बाद मैं अतिरिक्त रैम (परियोजना बहुत महत्वपूर्ण है) और फिर मेरी रैम (6 जीबी से) 12 जीबी बन खरीदते हैं।

लेकिन मैं जब त्रुटि dissaperared नहीं था बहुत हैरान था :) के बाद कुछ googling, अंत में, मुझे जवाब there मिला। समस्या cc1plus.exe निष्पादन योग्य स्मृति सीमा है। तो, क्यूटी के मामले में इस समस्या को इस चरणों में हल किया जा सकता (विंडोज 7, MinGW32 4.9.2 के लिए दूसरों के लिए, शायद बस रास्तों को बदलने की जरूरत): अपने ओएस cmd में 32 बिट है, तो (

  1. हैं व्यवस्थापक के रूप में) bcdedit /set IncreaseUserVa 3072
  2. masm32 इंस्टॉल करें;
  3. खुला cmd (व्यवस्थापक के रूप में भी);
  4. cd C:\Qt\Tools\mingw492_32\libexec\gcc\i686-w64-mingw32\4.9.2
  5. डाल C:\masm32\bin\editbin.exe /LARGEADDRESSAWARE cc1plus.exe

सब है कि डाल दिया। आशा है कि यह उपयोगी होगा :)

+0

धन्यवाद, मुझे एहसास करने में इतना लंबा समय लगा, आपको Win32 निष्पादन योग्य पर bigaddressaware ध्वज सेट करने के लिए editbin.exe की आवश्यकता है। – DanC225

3

विंडोज 7SP1 86 4GB RAM क्यूटी 5.7.0

मैं एक ही समस्या थी, जब मैं क्यूटी में संसाधनों में बड़ी फ़ाइल कहा, मैं त्रुटि थी:

cc1plus.exe:-1: error: out of memory allocating 1073745919 bytes

समाधान:

*.pro फ़ाइल में CONFIG += resources_big जोड़ें।

मैं इसे यहाँ ले लिया: https://forum.qt.io/topic/62655/cc1plus-exe-out-of-memory-60mb-encrypted-resource-file/8

संबंधित मुद्दे