8

私は、resources.qrcに入れた、たくさんの小さな異なる画像を必要とするWindowsゲームを開発しています。14MB。

コンパイルしようとすると、「134MBを割り当てているメモリが不足しています」「cc1plus.exeが見つかりません」というエラーのみが発生します。

どうすればこれを処理できますか?

4

4 に答える 4

12

Windows 7SP1 x86 4 GB RAM

Qt 5.7.0

Qtのリソースに大きなファイルを追加したときにも同じ問題が発生しました。エラーが発生しました:

cc1plus.exe:-1:エラー:1073745919バイトを割り当てるメモリが不足しています

解決:

ファイルに追加CONFIG += resources_big*.proます。

私はここでそれを取りました:cc1plus.exe:メモリ不足| 60MBの暗号化されたリソースファイル

于 2017-08-04T09:25:16.687 に答える
9

それらをqrcに配置せず、個別のリソース(または各イメージの新しいqrcファイル)として保持し、アプリケーションの起動時にロードするだけです。Qtはqrc_XXXXX.cppファイルを生成し、このファイルのリソースfileXXXXX内のすべてのリソースのchar配列の形式でバイナリデータを効果的に挿入します(はい、14MBのイメージに対して1つの配列、つまり:14680064バイト(hex( 0xXX)バイトを1つのファイルに...それは大きくなります!)、おそらく貧弱なコンパイラはそれらにただ咳をします...

于 2012-09-01T21:22:06.187 に答える
6

まあ、私もこの問題を抱えていました。しかし、私の状況では、すべてのリソースを投入する.exe必要がありました。

このエラーの後、追加のRAMを購入し(プロジェクトは非常に重要です)、RAMは12 GBになりました(6 GBから)。

しかし、エラーが消えなかったとき、私は非常に驚きました:)いくつかのグーグルの後、ついに、私はそこで答えを見つけました。問題はcc1plus.exe実行可能メモリの制限です。したがって、Qtの場合、この問題は次の手順で解決できます(Windows 7の場合、MinGW32 4.9.2、その他の場合は、パスを変更するだけで済みます)。

  1. OSが32ビットの場合、cmd(管理者として)に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

それで全部です。

于 2016-10-14T11:52:23.873 に答える
1

明らかなことも忘れないでください。メッセージが実際に真実であり、実際に十分なメモリがないか、メモリを必要とするプロセスで使用できるようにすることができません。

私のシステムには16GBのRAMがあり、小さなアプリケーションには十分なはずです。「それはおそらくそれではありえない。」私は思った...しかし私のマシンは数週間で再起動されていませんでした。

システムを再起動するだけで、このエラーを修正できます。

于 2021-09-13T14:53:40.587 に答える